Node_color与networkx图中的nodelist不匹配

时间:2018-02-23 17:45:18

标签: python graph nodes networkx

我正在使用networkx制作图表。我的节点是书名,每个都有作者种族的属性。我根据种族对节点着色,使用以下代码:

node_color = []

for node in C.nodes(data=True):
    try:
        if node[1]['RACE'] == 0.0:
            node_color.append('blue')
        elif node[1]['RACE'] == 1.0:
            node_color.append('red')
        elif node[1]['RACE'] == 2.0:
            node_color.append('green')
    except(TypeError, KeyError):
        node_color.append('brown')

节点和属性的字典工作正常(作者与种族正确匹配),但最终节点的颜色不正确(Toni Morrison'最蓝的眼睛是蓝色的,即代替红色)。这是我的绘图代码:

print (nx.draw_random(C, node_color=node_color, 
labels=labelDict,node_size=[v * 300 for v in eigDict.values()], width = 
.02, font_size=9))

我不确定为什么node_color = node_color没有正确映射。我唯一的想法是我还为节点的大小创建了一个特征向量中心的字典。当我绘制C时,这可能会改变节点列表的顺序吗?

import operator
eigDict = nx.eigenvector_centrality(C)
sorted_eigDict = sorted(eigDict.items(), key=operator.itemgetter(1), 
reverse=True)

如何才能使节点正确着色?

0 个答案:

没有答案