Dessinez des couleurs différentes pour les noeuds dans networkx en fonction de leur valeur de noeud
j'ai un grand graphe de nœuds et d'arêtes orientées. En outre, j'ai une liste de valeurs attribuées à chaque nœud.
je veux maintenant changer la couleur de chaque noeud en fonction de sa valeur. Ainsi, par exemple, les noeuds de dessin avec un rouge de très haute valeur et ceux avec un bleu de faible valeur (similaire à une heatmap). Est-ce que cela est facilement réalisable? Si ce n'est pas avec networkx, je suis aussi ouvert pour d'autres bibliothèques en Python.
24
demandé sur
fsociety
2012-11-22 21:32:06
1 réponses
import networkx as nx
import numpy as np
import matplotlib.pyplot as plt
G = nx.Graph()
G.add_edges_from(
[('A', 'B'), ('A', 'C'), ('D', 'B'), ('E', 'C'), ('E', 'F'),
('B', 'H'), ('B', 'G'), ('B', 'F'), ('C', 'G')])
val_map = {'A': 1.0,
'D': 0.5714285714285714,
'H': 0.0}
values = [val_map.get(node, 0.25) for node in G.nodes()]
nx.draw(G, cmap=plt.get_cmap('jet'), node_color=values)
plt.show()
les rendements
Les nombres values
sont associés avec les nœuds G.nodes()
.
C'est-à-dire, le premier nombre values
est associé au premier noeud de
45
répondu
unutbu
2014-11-18 01:36:38