簡體   English   中英

Networkx Graph圖節點權重

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

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