import pygraphviz as pgv
A = pgv.AGraph()
A.add_node('Alice')
A.add_node('Emma')
A.add_node('John')
A.add_edge('Alice', 'Emma')
A.add_edge('Alice', 'John')
A.add_edge('Emma', 'John')
print A.string()
print "Wrote simple.dot"
A.write('simple.dot') # write to simple.dot
B = pgv.AGraph('simple.dot') # create a new graph from file
B.layout() # layout with default (neato)
B.draw('simple.png') # draw png
print 'Wrote simple.png'
我想增加边的权重,它也应该出现在图上。
最佳答案
创建边时,可以将属性添加到边:
A.add_edge('Alice', 'Emma', weight=5)
或者您可以稍后设置它们:
edge = A.get_edge('Alice', 'Emma')
edge.attr['weight'] = 5
要将文本信息添加到边,请改为给它们一个
label
属性:edge = A.get_edge('Alice', 'Emma')
edge.attr['label'] = '5'
所有属性都在内部存储为字符串,但GraphViz将这些属性解释为特定类型;请参见attribute documentation。
关于python - 如何使用PyGraphviz在无向图的边缘添加和显示权重?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/15455855/