繁体   English   中英

使用networkx绘制平行边

[英]draw parallel edges using networkx

下面是一个非常简单的示例

import networkx as nx
import matplotlib.pyplot as plt

g = nx.DiGraph()
g.add_nodes_from([1,2,3])
g.add_edge(1,2, weight = 1)
g.add_edge(1,3, weight = 1)
g.add_edge(2,1, weight = 2)
nx.draw(g,with_labels=True)
plt.draw()
plt.show()

我想将权重标签添加到边缘,并显示1,2和2,1的平行边缘,我该怎么做。 我正在使用jupyter笔记本。

非常感谢!

这是在边缘添加权重标签的方法:

pos=nx.spring_layout(g)
nx.draw_networkx_nodes(g, pos)
nx.draw_networkx_labels(g, pos)
nx.draw_networkx_edges(g,pos)
nx.draw_networkx_edge_labels(g,pos,edge_labels={x:g[x[0]][x[1]]['weight'] for x in g.edges})
plt.axis('off')
plt.show()

输出:

图形

不幸的是,我认为networkx(或更确切地说是matplotlib)不能处理平行边图。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM