绘制不同的颜色,基于它们的节点值networkx节点(Draw different color fo

2019-07-04 01:42发布

我有一个大的图形的节点和有向边的。 此外,我必须分配给每个节点的值的附加列表。

我现在想根据自己的节点值来改变每个节点的颜色。 所以例如,绘制节点具有非常高的价值红色和那些低价值的蓝色(类似于热图)。 这是很容易莫名其妙可能实现? 如果没有与networkx,我也是开放的与其他的Python库。

Answer 1:

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()并且类似地,第二,等等。



文章来源: Draw different color for nodes in networkx based on their node value