class documentation

class Dendrogram: (source)

已知子类:igraph.VertexDendrogram

构造函数: Dendrogram(merges)

查看层次结构

某些数据集的分层聚类(树状图)。

层次聚类意味着我们不仅知道元素如何被分成组,还知道单个元素如何被合并成更大子组的确切历史。

这个类内部通过一个具有n行和2列的矩阵来表示层次结构——更准确地说,是一个大小为2的列表的列表。这与igraph的C核心使用的原始格式完全相同。矩阵的第i行包含在时间步骤i中被连接的两个簇的索引。联合组将由ID n + i表示,其中i从1开始。联合组的ID将在接下来的步骤中被引用,而不是其任何单个成员。因此,小于或等于n的ID(其中n是矩阵中的行数)表示数据集的原始成员(ID从0到n),而大于n + 1的ID表示联合组。例如,看一下五个节点的给定聚类的树状图和内部表示:

  0 -+
     |
  1 -+-+
       |
  2 ---+-+        <====>   [[0, 1], [3, 4], [2, 5], [6, 7]]
         |
  3 -+   |
     |   |
  4 -+---+---
方法 __init__ 创建一个层次聚类。
方法 __plot__ 在给定的Cairo上下文或matplotlib轴上绘制树状图。
方法 __str__ 未记录
方法 format 将树状图格式化为外部格式。
方法 names.setter 设置树状图中节点的名称
方法 summary 返回树状图的摘要。
属性 merges 返回以矩阵格式执行的合并
属性 names 返回树状图中节点的名称
静态方法 _convert_matrix_to_tuple_repr 将聚类的矩阵表示转换为元组表示。
方法 _traverse_inorder 对合并树进行中序遍历。
实例变量 _merges 未记录
实例变量 _names 未记录
实例变量 _nitems 未记录
实例变量 _nmerges 未记录
def __init__(self, merges): (source)

创建层次聚类。

参数
merges合并历史,可以是矩阵或元组格式
def __plot__(self, backend, context, *args, **kwds): (source)

在给定的Cairo上下文或matplotlib Axes上绘制树状图。

支持的关键字参数有:

  • orientation: the orientation of the dendrogram. Must be one of the following values: left-right, bottom-top, right-left or top-bottom. Individual elements are always placed at the former edge and merges are performed towards the latter edge. Possible aliases: horizontal = left-right, vertical = bottom-top, lr = left-right, rl = right-left, tb = top-bottom, bt = bottom-top. The default is left-right.
def __str__(self): (source)

未记录

def format(self, format='newick'): (source)

以外来格式格式化树状图。

目前仅支持Newick格式。

示例:

>>> d = Dendrogram([(2, 3), (0, 1), (4, 5)])
>>> d.format()
'((2,3)4,(0,1)5)6;'
>>> d.names = list("ABCDEFG")
>>> d.format()
'((C,D)E,(A,B)F)G;'
@names.setter
def names(self, items): (source)

设置树状图中节点的名称

def summary(self, verbosity=0, max_leaf_count=40): (source)

返回树状图的摘要。

摘要包括叶子和分支的数量,以及树状图的ASCII艺术表示,除非它太大。

参数
verbosity决定是否应打印树状图的ASCII表示。零详细程度仅打印叶子和分支的数量。
max_leaf_count在ASCII表示中打印的最大叶子数。如果树状图的叶子数超过此限制,即使详细程度大于或等于1,也不会打印ASCII表示。
返回
树状图的摘要作为字符串。

返回以矩阵格式执行的合并

返回树状图中节点的名称

@staticmethod
def _convert_matrix_to_tuple_repr(merges, n=None): (source)

将聚类的矩阵表示转换为元组表示。

参数
merges聚类的矩阵表示
n未记录
返回
聚类的元组表示
def _traverse_inorder(self): (source)

对合并树进行中序遍历。

中序遍历返回最后一层的节点,按照它们应该被绘制的顺序,以确保没有边相互交叉。

返回
中序遍历的结果在一个列表中。

未记录

未记录

未记录

_nmerges = (source)

未记录