rustworkx.visualization.graphviz_draw#

graphviz_draw(graph, node_attr_fn=None, edge_attr_fn=None, graph_attr=None, filename=None, image_type=None, method=None)[source]#

绘制一个PyGraphPyDiGraph对象 使用graphviz

注意

这要求已安装pydot、pillow和graphviz。Pydot可以通过pip install pydot pillow使用pip安装,但graphviz 需要单独安装。您可以参考 Graphviz documentation 获取安装说明。

Parameters:
  • graph – 要绘制的 rustworkx 图形对象,可以是 PyGraphPyDiGraph

  • node_attr_fn – 一个可选的调用对象,将接收图中每个节点的权重/数据载荷,并预期返回一个Graphviz节点属性字典,这些属性将在可视化中与该节点关联。此字典的键和值必须为字符串。

  • edge_attr_fn – 一个可选的调用对象,将被传递图中每条边的权重/数据载荷,并期望返回一个Graphviz边属性字典,这些属性将与可视化文件中的边相关联。该字典的键和值必须是字符串。

  • graph_attr (dict) – 一个可选字典,用于指定可视化中Graphviz图的属性。这个字典的键和值必须是字符串。

  • filename (str) – 一个可选的路径,用于将可视化结果写入。如果 指定了该参数,则此函数的返回类型将是 None,因为 输出图像会保存到磁盘。

  • image_type (str) – 指定用于生成可视化的图像文件格式。支持的图像格式包括: 'canon', 'cmap', 'cmapx', 'cmapx_np', 'dia', 'dot', 'fig', 'gd', 'gd2', 'gif', 'hpgl', 'imap', 'imap_np', 'ismap', 'jpe', 'jpeg', 'jpg', 'mif', 'mp', 'pcl', 'pdf', 'pic', 'plain', 'plain-ext', 'png', 'ps', 'ps2', 'svg', 'svgz', 'vml', 'vmlz', 'vrml', 'vtx', 'wbmp', 'xdot', 'xlib'。值得注意的是,虽然当指定了 filename 参数时,这些格式都可以用于生成图像文件,但用于返回对象的 Pillow 库 并不能支持所有这些格式。

  • method (str) – 用于生成可视化的布局方法/Graphviz命令方法。可用选项包括 'dot', 'twopi', 'neato', 'circo', 'fdp', 和 'sfdp'。 您可以查阅 Graphviz文档获取 不同布局方法的更多详情。默认使用 'dot'

Returns:

一个表示生成的可视化的PIL.Image对象(如果未指定filename)。如果指定了filename,则返回None,因为可视化内容已写入filename中指定的路径。

Return type:

PIL.图像

import rustworkx as rx
from rustworkx.visualization import graphviz_draw

def node_attr(node):
  if node == 0:
    return {'color': 'yellow', 'fillcolor': 'yellow', 'style': 'filled'}
  if node % 2:
    return {'color': 'blue', 'fillcolor': 'blue', 'style': 'filled'}
  else:
    return {'color': 'red', 'fillcolor': 'red', 'style': 'filled'}

graph = rx.generators.directed_star_graph(weights=list(range(32)))
graphviz_draw(graph, node_attr_fn=node_attr, method='sfdp')
../_images/rustworkx.visualization.graphviz_draw_0_0.png