类文档

图的顶点集的聚类。

此类通过将其链接到特定的 Graph 对象并可选地存储聚类的模块度分数来扩展 Clustering。它还提供了一些方便的方法,例如获取对应于聚类的子图等。

注意
由于此类链接到一个 Graph,因此通过以下方式销毁图del运算符不会释放图所占用的内存,如果存在引用该 GraphVertexClustering 对象。
类方法 FromAttribute 根据顶点属性的值创建顶点聚类。
方法 __init__ 为给定图创建聚类对象。
方法 __plot__ 将聚类绘制到给定的Cairo上下文或matplotlib Axes。
方法 as_cover 返回一个VertexCover,它包含与此聚类相同的簇。
方法 cluster_graph 返回一个图,其中每个簇被收缩成一个顶点。
方法 crossing 返回一个布尔向量,其中元素 iTrue当且仅当边 i 位于簇之间,False否则。
方法 giant 返回聚类图中最大的簇。
方法 recalculate_modularity 重新计算存储的模块化值。
方法 subgraph 获取属于给定簇的子图。
方法 subgraphs 获取属于每个簇的所有子图。
属性 graph 返回属于此对象的图
属性 modularity 返回模块化分数
方法 _formatted_cluster_iterator 遍历簇并将其格式化为字符串,以便在摘要中显示。
方法 _recalculate_modularity_safe 重新计算存储的模块化值,并吞噬(如果存在)模块化函数引发的所有异常。
类变量 _default_palette 未文档化
实例变量 _graph 未文档化
实例变量 _modularity 未文档化
实例变量 _modularity_dirty 未文档化
实例变量 _modularity_params 未文档化

继承自 Clustering

方法 __getitem__ 返回指定簇的成员。
方法 __iter__ 迭代此聚类中的簇。
方法 __len__ 返回簇的数量。
方法 __str__ 未文档化
方法 compare_to 使用某种相似性或距离度量将此聚类与另一个聚类进行比较。
方法 size 返回给定簇的大小。
方法 size_histogram 返回簇大小的直方图。
方法 sizes 返回给定簇的大小。
方法 summary 返回聚类的摘要。
属性 membership 返回成员向量。
属性 n 返回此聚类覆盖的元素数量。
实例变量 _len 未文档化
实例变量 _membership 未文档化
def FromAttribute(cls, graph, attribute, intervals=None, params=None): (源)

根据顶点属性的值创建顶点聚类。

具有相同属性的顶点将对应于同一聚类。

参数
graph我们正在处理的图
attribute聚类所基于的属性名称。
intervals对于数值属性,您可以在此处传递单个数字或数字列表。单个数字意味着顶点将被放入该宽度的 bin 中,并且最终位于相同 bin 中的顶点将属于同一聚类。数字列表明确指定 bin 位置;例如,[10, 20, 30]表示将有四个类别:属性值小于 10 的顶点,介于 10 和 20 之间,介于 20 和 30 之间,以及大于 30 的顶点。区间左闭右开。
params要存储在此对象中的附加参数。
返回
一个新的 VertexClustering 对象
def __init__(self, graph, membership=None, modularity=None, params=None, modularity_params=None): (源)
igraph.Cut 中被覆盖

为给定图创建聚类对象。

参数
graph将与聚类关联的图
membership成员列表。列表的长度必须等于图中的顶点数。如果为None,则假定每个顶点属于同一聚类。
modularity聚类的模块度分数。如果为None,则在需要时计算。
params要存储在此对象中的附加参数。
modularity_params当模块度(重新)计算时应传递给 Graph.modularity 的参数。如果原始图是加权的,您应该在此处传递一个包含weight键及其适当值的字典。
def __plot__(self, backend, context, *args, **kwds): (源)

将聚类绘制到给定的Cairo上下文或matplotlib Axes。

这是通过使用相同的参数调用 Graph.__plot__() 来完成的,但会根据当前聚类为图顶点着色(除非被vertex_color参数明确覆盖)。

此方法理解 Graph.__plot__() 所理解的所有位置参数和关键字参数,此处仅突出显示差异

  • mark_groups:是否通过彩色多边形突出显示某些顶点组。除了 Graph.__plot__ 接受的值(即,将颜色映射到顶点索引的字典,包含顶点索引列表的列表,或者False),以下值也接受

    • True:所有组都将被突出显示,颜色与当前调色板中对应的颜色索引匹配(参见palette的关键字参数 Graph.__plot__)。
    • 一个将聚类索引或顶点索引元组映射到颜色名称的字典。给定的聚类或顶点组将由给定的颜色突出显示。
    • 一个聚类索引列表。这等效于传递一个将当前调色板中的数字颜色索引映射到聚类索引的字典;因此,列表中元素 i 所指的聚类将由调色板中的颜色 i 突出显示。

    配置键的值plotting.mark_groups也在此处考虑;如果该配置键为Truemark_groups未明确给出,则会自动设置为True.

    除了顶点索引列表之外,您还可以使用 VertexSeq 实例。

    除了颜色名称之外,您还可以使用当前调色板中的颜色索引。None作为颜色名称意味着相应的组将被忽略。

  • palette:用于将数字颜色索引解析为 RGBA 值的调色板。默认情况下,这是 ClusterColoringPalette 的一个实例。

另请参阅
有关更多支持的关键字参数,请参阅 Graph.__plot__()
def as_cover(self): (源)

返回一个VertexCover,它包含与此聚类相同的簇。

def cluster_graph(self, combine_vertices=None, combine_edges=None): (源)

返回一个图,其中每个簇被收缩成一个顶点。

在结果图中,顶点 i 代表此聚类中的聚类 i。如果原始图中至少存在一对已连接的顶点 (a, b),使得顶点 a 属于聚类 i 且顶点 b 属于聚类 j,则顶点 ij 将被连接。

参数
combine_vertices指定如何从旧图中顶点的属性派生新图中顶点的属性。有关更多详细信息,请参阅 Graph.contract_vertices()
combine_edges指定如何从旧图中边的属性派生新图中边的属性。有关更多详细信息,请参阅 Graph.simplify()。如果您在此处指定False,则边将不会合并,并且表示原始聚类的顶点之间的边数将等于原始图中这些聚类成员之间的边数。
返回
新图。
def crossing(self): (源)

返回一个布尔向量,其中元素 iTrue当且仅当边 i 位于簇之间,False否则。

def giant(self): (源)

返回聚类图中最大的簇。

最大聚类是聚类中不存在更大聚类的聚类。如果聚类代表社区检测函数的结果,它也可能被称为巨型社区

前置条件:自覆盖构造以来,图的顶点集未被修改。

返回
最大聚类的副本。
注意
可能存在多个最大聚类,如果存在多个最大聚类,此方法将返回其中任意一个的副本。
def recalculate_modularity(self): (源)

重新计算存储的模块化值。

在通过类成员查询聚类的模块度分数之前,必须调用此方法modularityq如果自 VertexClustering 对象创建以来图已被修改(边已添加或删除)。

返回
新的模块度分数
def subgraph(self, idx): (源)

获取属于给定簇的子图。

前置条件:自覆盖构造以来,图的顶点集未被修改。

参数
idx聚类索引
返回
子图的副本
def subgraphs(self): (源)

获取属于每个簇的所有子图。

前置条件:自覆盖构造以来,图的顶点集未被修改。

返回
包含子图副本的列表

返回属于此对象的图

modularity = (源)

返回模块化分数

def _formatted_cluster_iterator(self): (源)

遍历簇并将其格式化为字符串,以便在摘要中显示。

def _recalculate_modularity_safe(self): (源)

重新计算存储的模块化值,并吞噬(如果存在)模块化函数引发的所有异常。

返回
新的模块度分数或None如果无法计算模块度函数。
_default_palette = (源)

未文档化

_graph = (源)

未文档化

_modularity = (源)

未文档化

_modularity_dirty: bool = (源)

未文档化

_modularity_params: dict = (源)

未文档化