module documentation

绘制图形的绘图例程。

该模块包含用于绘制图形的例程:

它还包含一些例程,可以直接将igraph图发送到(Cytoscape)使用(CytoscapeRPC插件),参见CytoscapeGraphDrawerCytoscapeGraphDrawer还可以从Cytoscape获取当前网络并将其转换为igraph格式。

CytoscapeGraphDrawer 使用CytoscapeRPC向/从Cytoscape发送/接收图形的图形绘制器。
GephiGraphStreamingDrawer 使用Gephi图流格式将图发送到类似文件的对象(例如,套接字、URL连接、文件)的图绘制器。
函数 __plot__ 将图形绘制到给定的Cairo上下文或matplotlib Axes。
def __plot__(self, backend, context, *args, **kwds): (source)

将图形绘制到给定的Cairo上下文或matplotlib Axes。

顶点和边的视觉样式可以在以下三个地方按照优先顺序进行修改(较低的索引会覆盖较高的索引):

  1. Keyword arguments of this function (or of plot() which is passed intact to Graph.__plot__().
  2. Vertex or edge attributes, specified later in the list of keyword arguments.
  3. igraph-wide plotting defaults (see igraph.config.Configuration)
  4. Built-in defaults.

例如,如果vertex_size关键字属性不存在,但存在一个名为size的顶点属性,则顶点的大小将由该属性指定。

除了通常的自解释绘图参数(context, bbox, palette),它还接受以下关键字参数:

  • autocurve: 是否在图形绘图中使用曲线而不是直线来表示多条边。此参数可以是TrueFalse;当省略时,对于边数少于10,000的图形,默认为True,否则为False

  • drawer_factory: AbstractCairoGraphDrawer 的一个子类,用于绘制图形。你也可以在这里提供一个函数,该函数接受两个参数:用于绘制的Cairo上下文和一个边界框(BoundingBox 的实例)。如果缺少此关键字参数,igraph 将使用默认的图形绘制器,该绘制器应适用于大多数用途。除非你需要使用特定的图形绘制器,否则可以安全地省略此关键字参数。

  • keep_aspect_ratio: 是否保持igraph计算出的节点布局的宽高比。True 表示布局将按比例缩放以适应绘制图形的边界框,但宽高比将保持不变(可能会在图形旁边、下方或上方留下空白空间)。False 表示布局将沿X和Y轴独立缩放以填充整个边界框。默认值为 False

  • layout: 要使用的布局。如果不是Layout的实例,它将被传递给layout来计算布局。请注意,如果你想要一个不随每次绘图变化的确定性布局,你必须使用一个确定性布局函数(如GraphBase.layout_circle)或提前计算布局并在此处传递一个Layout对象。

  • margin: 上、右、下、左边距作为一个4元组。如果元素少于4个或者是单个浮点数,元素将被重复使用,直到长度至少为4。

  • mark_groups: 是否通过彩色多边形突出显示某些顶点组。此参数可以是以下之一:

    • False: no groups will be highlighted
    • True: only valid if the object plotted is a VertexClustering or VertexCover. The vertex groups in the clutering or cover will be highlighted such that the i-th group will be colored by the i-th color from the current palette. If used when plotting a graph, it will throw an error.
    • A dict mapping tuples of vertex indices to color names. The given vertex groups will be highlighted by the given colors.
    • A list containing pairs or an iterable yielding pairs, where the first element of each pair is a list of vertex indices and the second element is a color.
    • A VertexClustering or VertexCover instance. The vertex groups in the clustering or cover will be highlighted such that the i-th group will be colored by the i-th color from the current palette.

    代替顶点索引列表,你也可以使用VertexSeq实例。

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

  • vertex_size: 顶点的大小。对应的顶点属性称为 size。默认值为10。顶点大小以igraph绘制的Cairo上下文的单位进行测量。

  • vertex_color: 顶点的颜色。对应的顶点属性是 color,默认是红色。颜色可以通过常见的X11颜色名称(参见 igraph.drawing.colors 的源代码以获取已知颜色列表)、浮点数的3元组(R、G和B分量的范围在0到255之间)、CSS样式的字符串规范(#rrggbb)或指定调色板的整数颜色索引来指定。

  • vertex_frame_color: 顶点边框(即描边)的颜色。对应的顶点属性是 frame_color,默认是黑色。有关指定颜色的可能方式,请参见 vertex_color

  • vertex_frame_width: 顶点框架(即描边)的宽度。对应的顶点属性是 frame_width。默认值为1。顶点框架宽度以igraph绘制的Cairo上下文的单位进行测量。

  • vertex_shape: 顶点的形状。也可以通过shape顶点属性来指定。可能的选项有:square(正方形),{circle}(圆形),{triangle}(三角形),{triangle-down}(倒三角形)或hidden(隐藏)。有关也被接受并映射到这些形状的替代形状名称列表,请参见igraph.drawing的源代码。

  • vertex_label: 绘制在顶点旁边的标签。对应的顶点属性是 label

  • vertex_label_dist: 顶点标签中点与对应顶点中心的距离。对应的顶点属性是 label_dist

  • vertex_label_color: 标签的颜色。对应的顶点属性:label_color。有关颜色规范语法,请参见vertex_color

  • vertex_label_size: 标签的字体大小,以我们绘制的Cairo上下文的单位指定。对应的顶点属性:label_size

  • vertex_label_angle: 连接顶点中点与标签中点的线的方向。这可以与vertex_label_dist一起使用,以相对于顶点本身定位标签。对应的顶点属性:label_angle。默认值为-math.pi/2

  • vertex_order: 顶点的绘制顺序。这必须是一个包含顶点索引的列表或元组;然后根据此顺序绘制顶点。

  • vertex_order_by: 一种指定顶点绘制顺序的替代方法;此属性被解释为顶点属性的名称,顶点按照属性值较小的先绘制。你也可以通过传递一个元组来反转顺序;元组的第一个元素应该是属性的名称,第二个元素指定顺序是否反转(True, False, "asc""desc" 是可接受的值)。

  • edge_color: 边的颜色。对应的边属性是 color,默认是红色。有关颜色规范语法,请参见 vertex_color

  • edge_curved: 是否应该弯曲边。正数对应于逆时针方向弯曲的边,负数对应于顺时针方向弯曲的边。零表示直线边。True 被解释为 0.5,False 被解释为 0。默认值为 0,这使得所有边都是直的。

  • edge_width: 边缘的宽度,以我们正在绘制的Cairo上下文的默认单位为单位。对应的边缘属性是 width,默认值为1。

  • edge_arrow_size: 边的箭头大小。对应的边属性是 arrow_size,默认值为1。

  • edge_arrow_width: 边缘箭头的宽度。对应的边缘属性是 arrow_width,默认值为1。

  • edge_order: 边的绘制顺序。这必须是一个包含边索引的列表或元组;然后根据此顺序绘制边。

  • edge_order_by: 一种指定边绘制顺序的替代方法;此属性被解释为边属性的名称,边的绘制顺序是属性值较小的边先绘制。你也可以通过传递一个元组来反转顺序;元组的第一个元素应该是属性的名称,第二个元素指定顺序是否反转(True, False, "asc""desc" 是可接受的值)。