簡體   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