[英]Networkx Graph plot node weights
我想為無向圖中的每個節點分配節點權重。 我使用以下MWE:
import sys
import matplotlib.pyplot as plt
import networkx as nx
G = nx.Graph()
G.add_node(0)
G.add_node(1, weight=2)
G.add_node(2, weight=3)
nx.draw(G, with_labels=True)
plt.show()
實現此目的最簡單的方法是什么? 在SO上,材料主要用於邊緣權重,或用於更改節點權重的節點大小。
您可以將labels
屬性與相應的dict和node_color
屬性與相應的列表一起使用。 對於此代碼:
G = nx.Graph()
G.add_node(0, weight=8)
G.add_node(1, weight=5)
G.add_node(2, weight=3)
labels = {n: G.nodes[n]['weight'] for n in G.nodes}
colors = [G.nodes[n]['weight'] for n in G.nodes]
nx.draw(G, with_labels=True, labels=labels, node_color=colors)
Networkx將繪制:
如果要繪制節點ID及其權重,則可以編寫如下內容:
labels = {n: str(n) + '; ' + str(G.nodes[n]['weight']) for n in G.nodes}
如果您在節點中缺少weight
屬性並想要繪制它們,則可以使用以下代碼:
labels = {
n: str(n) + '\nweight=' + str(G.nodes[n]['weight']) if 'weight' in G.nodes[n] else str(n)
for n in G.nodes
}
我認為幾乎不可能在具有不同顏色的節點附近繪制權重。 這是我可以向您推薦的最好的方法。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.