使用Networkx基于值分布着色节点

时间:2017-10-09 11:46:24

标签: python python-2.7

我编写了一个代码来表示使用Networkx的节点网络:

我创建节点的方式是每个节点(键)与一个在100和0之间振荡的值列表(代表百分比)相关联:

import networkx as nx
nodes = {
    "1": [100,0,0,0,0,0,0,0],
    "2": [0,25,0,25,25,25,0,0],
    "3": [0.050,0,30,0,20,0],
    "4": [0.0,0,100,0,0,0,0],
    "5": [0,0,0,0 , 10,10,0,80],
    "6": [0,0,0,0,0,100,0,0],
    "7": [0,0,0,0,70,30,0 ],
    "8": [0.0,0,0,0,0,0,100]
}

我生成轴(交互):

pairs = [("1", "2"), ("3", "4"), ("5", "6"), ("7", "8")]
edges = combinations(nodes, 2)
g = nx.Graph()
g.add_nodes_from(nodes)
g.add_edges_from(pairs)

到目前为止,我已设法绘制简单的网络,但我希望能够根据其值的分布用不同的颜色(或颜色组合)表示每个节点(从1到8)。

因此,如果一个节点在列表中的值为100,那么它的颜色将是明显的,相反,如果值的分布是其他的[例如, [25,25,25,25,0,0,0,0]节点的颜色可以是颜色的比例混合或它们的组合(根据值的分布)。

例如,列表中第一个值中的100可以对应于纯蓝色,列表中的第二个值为100,第三个黄色为100,第四个粉色为100,依此类推。

复杂的是表示颜色混合的节点。例如,让我们想象节点[" 1"]对应于以下列表[25,25,25,25,0,0,0,0]。如何使节点看起来由这些颜色的公平混合?,或者如何使每个节点根据其自身的值分布以每种颜色的百分比显示颜色?

0 个答案:

没有答案