[英]Change edge thickness based on weight
使用draw_networkx_edges()
時,是否可以根據其權重更改邊緣的厚度?
在這里,我假設權重小於某個已知數,例如 k。
您可以使用edges(data='weight')
:
邊作為帶有可選數據的元組返回(節點、鄰居、數據)。
也就是說,您可以在指定data='weight'
(或edge[2]['weight']
如果調用data=True
以獲取所有數據元素作為字典)時通過edge[2]
獲取邊的數據。
下面是一個例子:
import networkx as nx
g = nx.Graph()
g.add_edge('A', 'B', weight=5)
g.add_edge('A', 'C', weight=15)
g.add_edge('B', 'C', weight=7)
pos = nx.spring_layout(g, seed=0)
nx.draw_networkx(g, pos)
for edge in g.edges(data='weight'):
nx.draw_networkx_edges(g, pos, edgelist=[edge], width=edge[2])
一種方法是對邊進行分類,如本例所示。
第 1 步:向邊添加權重
第二步:根據權重對edgelist進行分類
第 3 步:將 edgelist 傳遞給 draw_networkx_edges
我從一個不同的 SO 線程偶然發現了這個。
舊鏈接: http : //networkx.lanl.gov/examples/drawing/weighted_graph.html
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.