欢迎使用CSDN-markdown编辑器

【python】pygraphviz生成二叉树图

pytgraphvizgraphviz工具python包装库。在本质上还是使用dot语言,实现画图功能。其最主要的功能点,其实只是快速的生成.dot文件,绘图的功能需要dot的支持。


绘图

先上代码:

#画图
def draw_plshu():
    r_tulp = getAll()
    r_map = tulpToMap(r_tulp)
    A = pgv.AGraph(directed=True,strict=True)
    for item in r_tulp:
        l_next = 2*item[0]
        r_next = 2*item[0]+1
        node = "("+str(item[0])+")"+item[1]

        if r_map.has_key(l_next):
            l_node = "("+str(r_map[l_next][0])+")"+r_map[l_next][1]
            A.add_edge(node,l_node)
        if r_map.has_key(r_next):
            r_node = "("+str(r_map[r_next][0])+")"+r_map[r_next][1]
            A.add_edge(node,r_node)

        A.graph_attr['epsilon']='0.001'
        A.write('pl003.dot')
        A.layout('dot')
        A.draw('pl003.svg')

AGraph对象是python包装的graph对象,使用此对象完成绘图。

方法or属性

add_*

add系列方法,程序结构中增加各个dot元素。

    A.add_edge(node,r_node)

graph_attr

graph_attr属性设置dot的graph属性,如dot中的:

strict digraph {
    graph [bb="0,0,52843,684",
        epsilon=0.001
    ];
}

write

write()方法写出dot文件

draw

draw()方法调用dot画图


注意使用画图时,最好使用svg格式的矢量图。使用png格式的位图,遇到数据量大时,会导致图片画不出来。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值