簡體   English   中英

如何在Networkx圖形圖中確定所選節點的特定顏色和大小

[英]How to determine specific color and size of chosen nodes in Networkx graph plot

我有以下代碼

#!/usr/bin/python

import sys
import networkx as nx
import matplotlib.pyplot as plt

G = nx.Graph();
G.add_node('A')
G.add_node('B')
G.add_node('C')
G.add_node('D')
G.add_edge('A','B',weight=1)
G.add_edge('C','B',weight=1)
G.add_edge('B','D',weight=30)

colors=range(20)
nx.draw_spring(G,font_size=20,width=2,node_size=1000,node_color='#A0CBE2')
plt.savefig("/Users/handsomeguy/Desktop/test.png",dpi=300)

這會生成以下圖表(當然沒有評論): 在此輸入圖像描述

如上圖所示。 我想改變節點CD的顏色,並擴大這些選定節點的大小。 我怎樣才能做到這一點?

注意,C和D是用戶的預定節點。

當您擁有一個小圖時,一種簡單的方法來更改單個節點的樣式是傳遞networkx.draw_spring大小/顏色列表的參數(例如node_sizenode_color )。 訣竅是,如果使用列表,列表必須包含每個節點的大小/顏色,列表必須與G.nodes()順序相同(因此我為什么要sort示例中的節點進行sort下面):

nx.draw_spring(G, nodelist=sorted(G.nodes()), font_size=20, width=2,
               node_size=[1000, 1000, 2000, 3000],
               node_color=["#A0CBE2", "#A0CBE2", "#FF0000", "#FFFF00"])

這是結果:

示例圖

另一個選擇是首先存儲圖形的節點/邊的布局,然后使用networkx.draw_networkx 當您擁有一個大圖並且只想更改幾個節點的樣式時,這可能更有用。 在這里,我首先在pos存儲圖形的彈簧布局,然后傳遞pos以繪制每個節點及其邊緣:

pos = nx.spring_layout(G)
nx.draw_networkx(G, pos=pos, nodelist=["A", "B"], node_size=1000, node_color='#A0CBE2', font_size=20, width=2)
nx.draw_networkx(G, pos=pos, nodelist=["C"], node_size=2000, node_color='#FF0000', font_size=20, width=2,)
nx.draw_networkx(G, pos=pos, nodelist=["D"], node_size=3000, node_color='#FFFF00', font_size=20, width=2)

注意 :要關閉networkx.draw_networkx圖中的軸,請在plt.show()之前添加以下命令:

limits=plt.axis('off') 

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

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