python-igraph API 参考

python-igraph 中所有类、函数和方法的列表

模块文档

igraph 中默认图绘图器的辅助类。

此模块包含大量的元类魔法。如果您不理解这些类背后的逻辑,可能您也不需要它们。

igraph 的默认图绘制器使用各种数据源来确定顶点和边的视觉外观。这些数据源如下(按优先级排序)

  • 传递给 igraph.plot() 函数(或实际上是 igraph.Graph.__plot__() ,因为 igraph.plot() 只是将这些属性传递下去)的关键字参数。 例如,一个名为vertex_label的关键字参数可用于设置顶点的标签。
  • 正在绘制的顶点/边的属性。例如,具有label属性的顶点在由默认图绘制器绘制时将使用该标签。
  • igraph 的全局配置。例如,如果全局 igraph.config.Configuration 实例有一个名为plotting.vertex_color的键,它将被用作顶点的默认颜色。
  • 如果所有其他方法都失败了,则有一个内置的默认值;例如,默认的顶点颜色是"red"。这是硬编码在源代码中的。

上面的逻辑在其他图绘制器中也可能很有用,而不仅仅是在默认的图绘制器中,因此它被重构到此模块中的类中。不同的图绘制器可能会检查不同的顶点或边属性,因此从各种数据源收集属性的类是在运行时使用名为 AttributeCollectorMeta 的元类生成的。您不必直接使用 AttributeCollectorMeta ,只需实现 AttributeCollectorBase 的子类,它将确保使用适当的元类。使用 AttributeCollectorBase ,您可以使用简单的声明式语法来指定您感兴趣的属性。例如

    class VisualEdgeBuilder(AttributeCollectorBase):
        arrow_size = 1.0
        arrow_width = 1.0
        color = ("black", palette.get)
        width = 1.0

    for edge in VisualEdgeBuilder(graph.es):
        print edge.color

上面的类是一个视觉边构建器——一个类,它给出在构建时指定的图的边的视觉属性。它指定我们感兴趣的属性是arrow_size, arrow_width, colorwidth; 还给出了默认值。对于color,我们还指定应该在每个属性值上调用一个名为 {palette.get} 的方法,以将颜色名称转换为 RGB 值。对于其他三个属性,float将隐式地在所有属性值上调用,这是从默认值本身的类型推断出来的。

参见
AttributeCollectorMeta, AttributeCollectorBase
AttributeCollectorBase 属性收集器子类的基类。继承此类的类可以使用声明式语法来指定它们打算收集哪些顶点或边属性。请参阅 AttributeCollectorMeta...
AttributeCollectorMeta 属性收集器类的元类
AttributeSpecification 描述应如何检索给定属性的值的类。