【发布时间】:2021-04-30 03:27:20
【问题描述】:
我正在 python 3.8 上使用 Networkx 创建一个图形,我想在将节点附加到图形时为每个节点分配一种颜色,如下所示:
if raw_output in occurrencies_dict_gold:
G.add_node(raw_output, color = 'g')
else:
G.add_node(raw_output, color = 'r')
print('RED STATE : ', raw_output)
在其中我检查一个节点在先前创建的特定字典中不存在,然后我添加节点及其颜色。
我对边缘做同样的事情
if transition_key in transitions_dict_gold:
G.add_edge(previous_raw_output, raw_output, color = 'g')
else:
G.add_edge(previous_raw_output, raw_output, color = 'r')
在印刷阶段我做了以下事情:
edges = G.edges()
nodes = G.nodes()
e_colors = [G[u][v]['color'] for u,v in edges]
n_colors = [G[u]['color'] for u in nodes]
nx.draw(G, node_color=n_colors, edge_color=e_colors, with_labels=True)
plt.show()
plt.savefig("filename.png")
如果我只对边缘执行此操作,则效果很好,而如果我按照上面所写的方式尝试,我会收到以下消息:
Traceback (most recent call last):
File "result_iterative_parser.py", line 157, in <module>
n_colors = [G[u]['color'] for u in nodes]
File "result_iterative_parser.py", line 157, in <listcomp>
n_colors = [G[u]['color'] for u in nodes]
File "/anaconda3/lib/python3.8/site-packages/networkx/classes/coreviews.py", line 51, in __getitem__
return self._atlas[key]
KeyError: 'color'
有什么想法吗?
【问题讨论】:
标签: python colors nodes networkx