安装
graphviz 提供了一个纯python接口用于绘制向图,他支持python 2.7和3.4+。使用pip
可以方便的进行安装:
pip install graphviz
在python使用graphviz的时候,先要看看Graphviz在python的用法(一),需要先安装graphviz。
基础使用
graphviz
模块提供了两个类: Graph 和Digraph。他们都是使用 DOT 语言,一个是创建无向图,一个是创建有向图,都有一样的API
通过实例化一个 Graph 和Digraph对象创建图。
>>> from graphviz import Digraph
>>> dot = Digraph(comment='The Round Table')
>>> dot
<graphviz.dot.Digraph object at 0x...>
构造函数中允许设置图的名称,DOT源文件名称和渲染图,一个放在第一行的评论,等等。
使用 node()
和 edge()
或 edges()
给图添加节点和边。
>>> dot.node('A', 'King Arthur')
>>> dot.node('B', 'Sir Bedevere the Wise')
>>> dot.node('L', 'Sir Lancelot the Brave')
>>> dot.edges(['AB', 'AL'])
>>> dot.edge('B', 'L', constraint='false')
node()
方法第一个参数为name
用来命名节点的名称,一个可选的label
。 edge()
方法的参数是开头和结尾的节点名称,edges()
的参数节点对。关键词参数转换为节点和边的属性,属性在这里 Graphviz docs。
验证生成的代码。
>>> print(dot.source)
// 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]
}
使用 render() 方法用来生成选定格式的图片。
>>> dot.render('test-output/round-table.gv', view=True)
'test-output/round-table.gv.pdf'
传入view=True
将使用系统默认的程序打开渲染后的图片(pdf,png,svg,等)。
例子
例子:生成简单的有向图并进行浏览
from graphviz import Digraph
g = Digraph('G', filename='hello.gv')
g.edge('Hello', 'World')
g.view()
如图: