首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Python,pygraphviz,networkx

Python,pygraphviz,networkx
EN

Stack Overflow用户
提问于 2014-03-30 18:25:58
回答 1查看 5.4K关注 0票数 4

我用networkx构建了一个有向加权图,并且我可以绘制它,但是它通常是交叉的,即使这个图很小。我也使用pygraphviz,但我无法添加标签。有人能帮我吗?

代码语言:javascript
复制
   edge_labels=dict([((u,v,),d['weight'])
              for u,v,d in DG.edges(data=True)])
   pylab.figure(1)
   pos=nx.spring_layout(DG)

   nx.draw(DG, pos)
   nx.draw_networkx_edge_labels(DG,pos,edge_labels=result,font_size=10)

   pylab.show()

如何将其转换为pygraphviz图并向其添加标签

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2014-03-30 19:28:24

Graphviz在边缘上绘制“label”属性。下面是一个示例,如果标签属性存在,则将其设置为边缘权重。

代码语言:javascript
复制
import networkx as nx
import pygraphviz as pgv # need pygraphviz or pydot for nx.to_agraph()

G = nx.DiGraph()
G.add_edge(1,2,weight=7)
G.add_edge(2,3,weight=8)
G.add_edge(3,4,weight=1)
G.add_edge(4,1,weight=11)
G.add_edge(1,3)
G.add_edge(2,4)

for u,v,d in G.edges(data=True):
    d['label'] = d.get('weight','')

A = nx.to_agraph(G)
A.layout(prog='dot')
A.draw('test.png')

票数 6
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/22747977

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档