rustworkx.visualization.mpl_draw#

mpl_draw(graph, pos=None, ax=None, arrows=True, with_labels=False, **kwds)[source]#

用 Matplotlib 绘制一张图。

注意

Matplotlib是一个可选的依赖项,默认情况下不会随 rustworkx一同安装。如果您打算使用此功能,请确保您通过pip install matplotlibpip install 'rustworkx[mpl]'安装matplotlib。

Parameters:
  • graph – 一个rustworkx图,可以是 PyGraphPyDiGraph

  • pos (dict) – 一个可选字典(或 Pos2DMapping 对象),其中节点作为键, 位置作为值。如果未指定,将计算弹簧布局定位。请参阅 layout_functions 以获取计算 节点位置的函数。

  • ax (matplotlib.Axes) – 一个可选的Matplotlib Axes对象,用于在其中绘制图形。

  • arrows (bool) – 对于 PyDiGraph 对象,若设为 True 则绘制箭头(默认为 True)。请注意,箭头的颜色将与边的颜色相同。

  • arrowstyle (str) – 用于有向图的可选字符串,用于选择箭头头的样式。更多选项请参阅matplotlib.patches.ArrowStyle。默认情况下该值设置为'-\|>'

  • arrow_size (int) – 对于有向图,选择箭头头部长度和宽度的大小。更多信息请参阅 matplotlib.patches.FancyArrowPatch 属性和构造函数关键字参数 mutation_scale。 默认为 10。

  • with_labels (布尔型) – 设置为 True 可在节点上绘制标签。仅当 edge_labels 参数设置为函数时,才会绘制边标签。默认值为 False

  • node_list (list) – 可选的图中节点索引列表。 如果未指定,将绘制所有节点。

  • edge_list (list) – 一个可选的图形中边的列表,用于绘制。如果未指定,将绘制所有边

  • node_size (int|list) – 可选的节点大小。如果指定了数组, 数组长度必须与 node_list 相同。默认为 300

  • node_color – 可选的节点颜色。可以是单一颜色或与 node_list 长度一致的序列颜色。颜色可以是字符串或是 0-1 的浮点 rgb(或 rgba)元组。如果指定了数值,它们会使用 cmapvmin,``vmax`` 参数映射到颜色。更多详情参阅 matplotlib.scatter()。默认为 '#1f78b4')

  • node_shape (str) – 可选的节点形状。规范与 matplotlib.pyplot.scatter() 函数的 marker 关键字参数相同,有效选项是 ['s', 'o', '^', '>', 'v', '<', 'd', 'p', 'h', '8'] 中的一个。默认为 'o'

  • alpha (float) – 可选的节点与边缘透明度值

  • cmap (matplotlib.colors.Colormap) – 一个可选的Matplotlib颜色映射对象,用于映射节点的强度值

  • vmin (float) – 节点颜色映射缩放的选填最小值

  • vmax (float) – 节点颜色映射缩放的选填最小值

  • linewidths (float|sequence) – 一个可选的符号边框线宽。如果指定了序列,则其长度必须与 node_list 长度相同。默认为 1.0

  • width (float|sequence) – 一个可选的边宽度。可以是浮点数或浮点数序列。如果指定序列,其长度必须与node_list相同。默认为1.0

  • edge_color (str|sequence) – 颜色或颜色数组 (默认='k') 边的颜色。可以是单一颜色或与edge_list长度相同的颜色序列。 颜色可以是字符串或浮点数0-1的RGB(或RGBA)元组。如果指定了数值,将使用edge_cmapedge_vminedge_vmax参数将其映射为颜色。

  • edge_cmap (matplotlib.colors.Colormap) – 一个可选的 Matplotlib 颜色映射,用于边缘强度的映射。

  • edge_vmin (float) – 可选的边颜色映射缩放最小值

  • edge_vmax (float) – 用于节点色彩映射缩放的备选最大值

  • style (str) – 用于指定边线样式的可选字符串。 例如,'-''--''-.'':' 或类似 'solid''dashed' 的词语。更多详情请参见 matplotlib.patches.FancyArrowPatch 属性及关键字参数 linestyle。默认为 'solid'

  • labels (func) –

    一个可选的回调函数,将接收节点数据负载并返回该节点的字符串标签。例如:

    labels=str
    

    可用于直接返回节点数据负载的字符串转换形式。 或者像:

    labels=lambda node: node['label']
    

    如果节点负载是字典的话可以使用。

  • edge_labels (func) –

    一个可选的回调函数,将接收边的数据载荷并返回边的字符串标签。例如:

    edge_labels=str
    

    可用于直接返回边数据载荷的字符串转换形式。 或者像这样:

    edge_labels=lambda edge: edge['label']
    

    当边数据载荷为字典时可以使用这种形式。如果设置此项, 边的标签将在可视化中显示。

  • font_size (int) – 一个可选的字体大小值,用于文本标签。默认情况下,节点使用值12,边使用值10.

  • font_color (str) – 字符串的可选字体颜色。默认设置为 'k' (即黑色)。

  • font_weight (str) – 一个可选字符串,用于指定字体粗细。 默认情况下使用 'normal' 值。

  • font_family (str) – 用于字符串的可选字体家族。默认情况下使用'sans-serif'

  • label (str) – 一个可选的字符串标签,用于图表图例。

  • connectionstyle (str) – 一个可选值,用于创建指定圆角半径rad的弯曲弧线。 例如, connectionstyle='arc3,rad=0.2'。更多信息请参见 matplotlib.patches.ConnectionStylematplotlib.patches.FancyArrowPatch。默认情况下 该值设置为 "arc3"

Returns:

如果不是在与交互式后端(如jupyter)一起运行,或者如果ax未设置,则为可视化生成的matplotlib图形。

Return type:

matplotlib.figure.Figure

例如:

import matplotlib.pyplot as plt

import rustworkx as rx
from rustworkx.visualization import mpl_draw

G = rx.generators.directed_path_graph(25)
mpl_draw(G)
plt.draw()
../_images/rustworkx.visualization.mpl_draw_0_0.png