yapgvb是Graphviz 一个python的封装,可以把一个数据结构中的有向图、无向图、关系网络等直观的显示出来,并且自动排版。 输出格式有 'pic', 'jpg', 'ismap', 'gd', 'hpgl', 'ps2', 'plain-ext', 'wbmp', 'ps', 'mif', 'gif', 'canoncmap', 'fig', 'pcl', 'vtx', 'vrml', 'svgz', 'gd2', 'xdot', 'jpeg', 'cmapx', 'imap', 'png', 'plain', 'dia', 'mp', 'svg', 'dot'。
简单例子:
#!/usr/bin/python
#-*- encoding=gbk -*-
import yapgvb
if __name__ == "__main__":
g = yapgvb.Graph()
# 添加节点
Root = g.add_node("Root",shape="circle")
ylj =g.add_node("ylj",shape="circle")
zjl =g.add_node("zjl",shape="circle")
hrh =g.add_node("hrh",shape="circle")
zlq =g.add_node("zlq",shape="circle")
tyl =g.add_node("tyl",shape="circle")
gzl =g.add_node("gzl",shape="circle")
zzl =g.add_node("zzl",shape="circle")
pdh =g.add_node("pdh",shape="circle")
zy =g.add_node("zy ",shape="circle")
hh =g.add_node("hh",shape="circle")
# 添加边
Root >> ylj # 边 root --> ylj
Root >> zjl
hrh >> ylj
hh << zy
zy >> tyl
tyl << hrh
hrh >> zlq
pdh << hrh
zzl >> ylj
ylj << gzl
gzl >> hrh
Root.root =True
#设定板式
g.layout("neato")
#输出文件
g.render("../../htdocs/images/temp/test_circo.svg")
输出 ../../htdocs/images/temp/test_circo.svg 文件可以用svgviewer浏览。
支持的排版样式有:
neato
dot
fdp
twopi
circo
yapgvb的安装比较麻烦。总的来说,需要安装Graphviz ,再安装 boost.python,然后再安装yapgvb模块。graphviz,yapgvb可以在sourceforge上下载,boost.python在boost官方网站有链接。