package documentation

igraph的绘图和绘图例程。

igraph 目前有两个稳定的绘图后端:Cairo 和 Matplotlib。它还支持实验性的 plotly。

Cairo 后端依赖于 pycairocairocffi 库,这些库提供了对流行的 Cairo 库 的 Python 绑定。这意味着如果你没有安装 pycairocairocffi,你将无法使用 Cairo 绘图后端。每当文档中提到 pycairo 库时,你可以安全地将其替换为 cairocffi,因为两者是 API 兼容的。

Matplotlib 后端使用 Matplotlib 库。如果您想使用 Matplotlib 绘图后端,您需要从 PyPI 安装它。我们的许多图表示例都使用 matplotlib 后端。

plotly 后端使用 plotly 库,并且像 matplotlib 一样,需要从 PyPI 安装。

如果您不想(或不能)安装上述任何依赖项,您仍然可以将图形保存为SVG文件,并从Mozilla Firefox(免费)查看它,或在Inkscape(免费)、Skencil(以前称为Sketch,也是免费的)或Adobe Illustrator中编辑它。

模块 baseclasses 绘图例程的抽象基类。
cairo 没有包文档字符串;10/13 模块已记录
模块 colors 颜色处理函数。
模块 graph 绘制图形的例程。
matplotlib 没有包文档字符串;7/9 模块已记录
模块 metamagic igraph中默认图形绘制器的辅助类。
plotly 没有包文档字符串;3/5 模块已记录
模块 shapes 用于igraph的形状绘制类
模块 text 用于绘制图表上的标签。
模块 utils 用于绘图例程的实用类。

来自 __init__.py:

DrawerDirectory 查找对象/后端绘图器的静态类
函数 plot 将给定对象绘制到给定目标。
def plot(obj, target=None, bbox=(0, 0, 600, 600), *args, **kwds): (source)

将给定对象绘制到给定目标。

未在此明确提及的位置参数和关键字参数将传递给被绘制对象的__plot__方法。由于您可能对图形绘图中可用的关键字参数感兴趣,请参见Graph.__plot__

参数
obj要绘制的对象
target

对象应该绘制的目标。它可以是以下类型之一:

  • matplotib.axes.Axes -- 一个matplotlib/pyplot的轴,图形将绘制在其中。绘图委托给所选的matplotlib后端,您可以使用交互式后端和matplotlib函数将图形保存到文件中。
  • string -- 将创建具有给定名称的文件,并将绘图存储在其中。如果您使用的是Cairo后端,将附加适当的Cairo表面到文件。如果您使用的是matplotlib后端,将使用Figure.savefig将图形保存到该文件中,使用默认参数。Cairo支持的图像格式有:PNG、PDF、SVG和PostScript;matplotlib可能支持其他格式。
  • cairo.Surface -- 将使用给定的Cairo表面。这可以引用PNG图像、任意窗口、SVG文件,任何Cairo可以处理的内容。
  • None -- 如果您使用的是Cairo后端,将不会执行绘图;igraph简单地返回一个CairoPlot_对象,您可以使用它来操作绘图并稍后将其保存到文件中。如果您使用的是matplotlib后端,将创建一个Figure对象和一个Axes,并返回Axes以便您可以进一步操作它。同样,如果您使用的是plotly后端,将返回一个Figure对象。
bbox绘图的边界框。它必须是一个包含两个或四个整数的元组,或者是一个BoundingBox对象。如果这是一个包含两个整数的元组,它将被解释为绘图的宽度和高度(对于PNG图像和屏幕绘图以像素为单位,对于PDF、SVG和PostScript绘图以点为单位,其中72 pt = 1英寸 = 2.54厘米)。如果这是一个包含四个整数的元组,前两个表示一个角的X和Y坐标,后两个表示对角角的X和Y坐标。对于Matplotlib绘图忽略此参数。
*args未记录
opacity被绘制对象的不透明度。如果你对它们使用相同的布局,它可以用于重叠同一图形的多个绘图——例如,你可以绘制一个不透明度为0.5的图形,然后在其上绘制一个不透明度为0.1的生成树。为了实现这一点,你需要修改通过Plot返回的对象,并使用Plot.add。对于Matplotlib绘图,此参数将被忽略。
palette如果添加的对象没有指定私有调色板,则主要用于绘图的调色板。必须是一个igraph.drawing.colors.Palette对象或一个引用igraph.drawing.colors.palettes有效键的字符串(参见模块igraph.drawing.colors)或None。在后一种情况下,将使用配置键plotting.palette给出的默认调色板。
margin上、右、下、左边距作为一个4元组。如果元素少于4个或为单个浮点数,元素将被重复使用,直到长度至少为4。默认边距为每侧20个单位。对于Matplotlib绘图忽略此参数。
inline是否尝试在当前IPython笔记本中内联显示绘图对象。在此处传递None或省略此关键字参数将从shell.ipython.inlining.Plot配置键中查找首选行为。请注意,此关键字参数仅在igraph在IPython内部运行且targetNone时有效。
backend使用的绘图后端;可以是 "cairo""matplotlib""plotly" 中的一个。None 表示尝试根据绘图目标和默认的 igraph 配置对象来决定后端。
返回
一个适用于Cairo后端的CairoPlot对象,适用于Matplotlib后端的Matplotlib Axes对象,以及适用于plotly后端的Figure对象。
另请参阅
Graph.__plot__