【发布时间】:2016-10-01 02:37:11
【问题描述】:
我正在使用来自这个问题的代码:networkx - change color/width according to edge attributes - inconsistent result,因为它几乎可以回答我的问题,但我正在使用 Multigraph,这就是为什么该问题的答案对我没有帮助的原因。
我需要根据权重绘制线条粗细的图表,但图表绘制不正确。我确信问题出在边缘的顺序上。这是我的代码:
我有一个由如下所示的边组成的多重图:
edgies = [(1,2, {'color': 'r'}),(2,3,{'color': 'b'}),(3,4,{'color':'g'})]
G = nx.MultiGraph()
G.add_edges_from(edgies, color = 'color')
pos = nx.circular_layout(G)
edges = G.edges()
colors = [G[u][v]['color'] for u,v in edges]
nx.draw(G, pos, edges=edges, edge_color=colors)
plt.show()
我得到的错误如下:
colors = [G[u][v]['color'] for u,v in edges]
KeyError: 'color'
如果我只使用图表,则此代码有效,但在使用多重图表时会出现错误。如果您需要任何进一步的说明,请告诉我。谢谢。
【问题讨论】: