Graphviz 的简单 Python 接口
项目描述
这个包有助于在Python的Graphviz图形绘图软件(上游存储库)的DOT语言中创建和呈现图形描述。
创建一个图形对象,通过添加节点和边来组装图形,并检索其 DOT 源代码字符串。将源代码保存到文件中,并使用系统的 Graphviz 安装来呈现它。
使用视图选项/方法直接检查生成的(PDF、PNG、SVG 等)文件及其默认应用程序。图形也可以在Jupyter 笔记本(以前称为 IPython 笔记本, 例如nbviewer )以及Jupyter QtConsole中呈现和显示。
链接
安装
这个包在 Python 3.7+ 下运行,使用pip安装:
$ pip install graphviz
要渲染生成的 DOT 源代码,您还需要安装Graphviz (下载页面、 存档版本、 Windows 安装程序)。
确保包含dot可执行文件的目录位于系统的PATH上 (有时由安装程序完成; 在Linux、 Mac和Windows上设置PATH)。
Anaconda:请参阅conda-forge包 conda-forge/python-graphviz ( feedstock ),它应该自动conda install conda-forge/graphviz ( feedstock ) 作为依赖项。
快速开始
创建图形对象:
>>> import graphviz # doctest: +NO_EXE
>>> dot = graphviz.Digraph(comment='The Round Table')
>>> dot #doctest: +ELLIPSIS
<graphviz.graphs.Digraph object at 0x...>
添加节点和边:
>>> dot.node('A', 'King Arthur') # doctest: +NO_EXE
>>> dot.node('B', 'Sir Bedevere the Wise')
>>> dot.node('L', 'Sir Lancelot the Brave')
>>> dot.edges(['AB', 'AL'])
>>> dot.edge('B', 'L', constraint='false')
检查生成的源代码:
>>> print(dot.source) # doctest: +NORMALIZE_WHITESPACE +NO_EXE
// The Round Table
digraph {
A [label="King Arthur"]
B [label="Sir Bedevere the Wise"]
L [label="Sir Lancelot the Brave"]
A -> B
A -> L
B -> L [constraint=false]
}
保存并渲染源代码:
>>> doctest_mark_exe()
>>> dot.render('doctest-output/round-table.gv').replace('\\', '/')
'doctest-output/round-table.gv.pdf'
保存并渲染并查看结果:
>>> doctest_mark_exe()
>>> dot.render('doctest-output/round-table.gv', view=True) # doctest: +SKIP
'doctest-output/round-table.gv.pdf'
警告: 反斜杠转义和<...>形式的字符串 在 DOT 语言中具有特殊含义。如果您需要呈现任意字符串(例如来自用户输入),请查看用户指南中的详细信息。
也可以看看
pygraphviz – 使用 SWIG 包装 Graphviz C 库的完整接口
graphviz-python – 官方 Python 绑定(文档)
pydot - 稳定的纯 Python 方法,需要 pyparsing
执照
这个包是在MIT 许可下分发的。