簡體   English   中英

根據重量改變邊緣厚度

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM