我正在用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')
节点和属性的字典工作正常(writers与race匹配正确),但节点最终的颜色不正确(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\u color=node\u color为什么映射不正确。我唯一的想法是,我还为节点的大小创建了一个特征向量中心性字典。当我画C时,也许这改变了nodelist的顺序?你知道吗
import operator
eigDict = nx.eigenvector_centrality(C)
sorted_eigDict = sorted(eigDict.items(), key=operator.itemgetter(1),
reverse=True)
如何正确地为节点着色?你知道吗
目前没有回答
相关问题 更多 >
编程相关推荐