我有一个大的图形的节点和有向边的。 此外,我必须分配给每个节点的值的附加列表。
我现在想根据自己的节点值来改变每个节点的颜色。 所以例如,绘制节点具有非常高的价值红色和那些低价值的蓝色(类似于热图)。 这是很容易莫名其妙可能实现? 如果没有与networkx,我也是开放的与其他的Python库。
我有一个大的图形的节点和有向边的。 此外,我必须分配给每个节点的值的附加列表。
我现在想根据自己的节点值来改变每个节点的颜色。 所以例如,绘制节点具有非常高的价值红色和那些低价值的蓝色(类似于热图)。 这是很容易莫名其妙可能实现? 如果没有与networkx,我也是开放的与其他的Python库。
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('viridis'), node_color=values, with_labels=True, font_color='white')
plt.show()
产量
中的数字values
与所述节点相关联的G.nodes()
也就是说,在所述第一数目values
是与所述第一节点相关联的在G.nodes()
并且类似地,第二,等等。