簡體   English   中英

根據 Networkx 中的某些值更改節點的顏色

[英]Changing the colors of nodes based on certain values in Networkx

我有一組帶有鄰接矩陣的節點。 我想根據數組P為這些節點着色,使得node 1 = P[0]node 2 = P[1]node 3 = P[2]等等,並帶有顯示值范圍的顏色條。 介紹了當前和預期的產出。

import numpy as np
import networkx as nx

G = nx.grid_2d_graph(3,3)
new_nodes = {e: n for n, e in enumerate(G.nodes, start=1)}
new_edges = [(new_nodes[e1], new_nodes[e2]) for e1, e2 in G.edges]
G = nx.Graph()
G.add_edges_from(new_edges)
nx.draw(G, with_labels=True)

A1 = nx.adjacency_matrix(G) 
A=A1.toarray()
print([A]) 

P=np.array([10.5,20.7,30.7,40.1,50.6,60.3,70.6,80.9,90.8])

當前輸出為

在此處輸入圖像描述

預期的輸出是

在此處輸入圖像描述

如果要為節點着色,可以將顏色列表傳遞給繪圖函數以綁定到每個節點。 這些顏色可以從您決定定位的任何范圍內計算為十六進制值。 在我下面的命題中:你的 P 向量的值在 0 到 100 之間,而顏色值可以在 0 到 255 之間,以十六進制編碼。

主張:

P=np.array([10,20,30,40,50,60,70,80,90])
color_hex_values = [ hex(int(e*255/100))[2:] for e in P ]
print(color_hex_values)
nx.draw(G, with_labels=True,node_color=[f"#00{hv}00" for hv in color_hex_values] )

暫無
暫無

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

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