【发布时间】:2014-10-27 15:36:10
【问题描述】:
我设法正确地生成了图表,但经过更多测试发现以下两行不同代码的结果不一致:
colors = [h.edge[i][j]['color'] for (i,j) in h.edges_iter()]
widths = [h.edge[i][j]['width'] for (i,j) in h.edges_iter()]
nx.draw_circular(h, edge_color=colors, width=widths)
这种方法会产生一致的输出,而以下方法会根据边缘的顺序产生错误的颜色/大小:
colors = list(nx.get_edge_attributes(h,'color').values())
widths = list(nx.get_edge_attributes(h,'width').values())
nx.draw_circular(h, edge_color=colors, width=widths)
但是,在我看来,以上两行都依赖于函数调用来按边的顺序返回属性。为什么会有不同的结果?
用h[][][] 访问属性对我来说有点笨拙;是否可以通过点约定访问它,例如edge.color for edge in h.edges().
还是我错过了什么?
【问题讨论】:
标签: python python-3.x networkx