Dibujar un color diferente para los nodos en networkx en función de su valor de nodo
Tengo un gran gráfico de nodos y bordes dirigidos. Además, tengo una lista adicional de valores asignados a cada nodo.
Ahora quiero cambiar el color de cada nodo de acuerdo con su valor de nodo. Por ejemplo, dibujar nodos con un valor rojo muy alto y aquellos con un valor azul bajo (similar a un mapa de calor). ¿Es esto de alguna manera fácilmente posible de lograr? Si no es con networkx, también estoy abierto para otras bibliotecas en Python.
24
1 answers
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()
Rinde
Los números en values
están asociados con los nodos G.nodes()
.
Es decir, el primer número en values
está asociado con el primer nodo en G.nodes()
, y de manera similar para el segundo, y así sucesivamente.
45
Author: unutbu,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2014-11-18 01:36:38
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2014-11-18 01:36:38