绘制图的绘图程序。
此模块包含在以下对象上绘制图的例程
- Cairo 表面 (
DefaultGraphDrawer
) - Matplotlib 轴 (
MatplotlibGraphDrawer
)
它还包含使用 (CytoscapeRPC 插件) 将 igraph 图直接发送到 (Cytoscape) 的例程,请参阅 CytoscapeGraphDrawer
。CytoscapeGraphDrawer
也可以从 Cytoscape 获取当前网络并将其转换为 igraph 格式。
类 |
|
图绘制器,使用 CytoscapeRPC 发送/接收到/从 Cytoscape 的图形。 |
类 |
|
图绘制器,使用 Gephi 图流式传输格式将图发送到类似文件的对象(例如,套接字、URL 连接、文件)。 |
函数 | __plot__ |
将图绘制到给定的 Cairo 上下文或 matplotlib Axes。 |
将图绘制到给定的 Cairo 上下文或 matplotlib Axes。
顶点和边的视觉样式可以在以下三个位置修改,优先级顺序如下(较低的索引会覆盖较高的索引):
- 此函数的关键字参数(或
plot()
的关键字参数,该参数完整传递到Graph.__plot__(). - 顶点或边属性,在关键字参数列表中稍后指定。
- igraph 范围的绘图默认值(请参阅
igraph.config.Configuration
) - 内置默认值。
例如,如果vertex_size关键字属性不存在,但是存在一个名为size的顶点属性,则顶点的大小将由该属性指定。
除了通常的不言自明的绘图参数(context, bbox, palette)之外,它还接受以下关键字参数
autocurve:是否对图绘图上的多条边使用曲线而不是直线。此参数可以是True之一或False;省略时,对于边数少于 10.000 的图,假定为True,对于边数多于 10.000 的图,假定为False否则。
drawer_factory:
AbstractCairoGraphDrawer
的子类,将用于绘制图形。您也可以在此处提供一个函数,该函数接受两个参数:要绘制的 Cairo 上下文和一个边界框(BoundingBox
的实例)。如果缺少此关键字参数,igraph 将使用默认的图形绘制器,该绘制器应适用于大多数目的。除非您需要使用特定的图形绘制器,否则可以安全地省略此关键字参数。keep_aspect_ratio:是否保持 igraph 计算以放置节点的布局的纵横比。True意味着布局将按比例缩放以适合要在其中绘制图的边界框,但纵横比将保持不变(可能会在图的旁边、下方或上方留下空白空间)。False意味着布局将沿 X 轴和 Y 轴独立缩放,以填充整个边界框。默认值为False.
layout: 要使用的布局。如果不是
Layout
的实例,它将被传递给layout
以计算布局。请注意,如果您想要一个确定性布局,该布局不会随每个绘图而改变,您必须使用确定性布局函数(如GraphBase.layout_circle
),或者提前计算布局并在此处传递一个Layout
对象。边距:顶部、右侧、底部、左侧边距,作为 4 元组。如果它的元素少于 4 个或者是一个浮点数,则将重复使用这些元素,直到长度至少为 4。
mark_groups:是否通过彩色多边形突出显示某些顶点组。此参数可以是以下之一
- False:不会突出显示任何组
- True: 仅当绘制的对象是
VertexClustering
或VertexCover
时才有效。clutering 或 cover 中的顶点组将被突出显示,以便第 i 个组将由当前调色板中的第 i 个颜色着色。如果在绘制图形时使用,则会引发错误。 - 将顶点索引元组映射到颜色名称的字典。给定的顶点组将通过给定的颜色突出显示。
- 包含对的列表或生成对的可迭代对象,其中每对的第一个元素是顶点索引列表,第二个元素是一种颜色。
- 一个
VertexClustering
或VertexCover
实例。聚类或覆盖中的顶点组将被突出显示,以便第 i 个组将由当前调色板中的第 i 个颜色着色。
您还可以使用
VertexSeq
实例代替顶点索引列表。您还可以使用当前调色板中的颜色索引代替颜色名称。None作为颜色名称将意味着相应的组将被忽略。
vertex_size:顶点的大小。相应的顶点属性称为size。默认值为 10。顶点大小以 igraph 在其上绘制的 Cairo 上下文的单位进行测量。
vertex_color:顶点的颜色。相应的顶点属性是color,默认颜色为红色。可以通过常见的 X11 颜色名称(请参阅
igraph.drawing.colors
的源代码以获取已知颜色列表)、浮点数的三元组(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_coloredge_colorcolor:边的颜色。相应的边属性是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"