我正在使用 networkx 来研究图论实现,我想知道是否有一种方法可以标记给定图中的某些边?
例如 - 假设我有一个图 G 并且我找到了从节点 x 到节点 y 的最短路径,我如何标记该路径,以便在绘制图时它将以不同的颜色绘制?
标记边缘可以通过设置属性来完成color例如,使用您想要的每个边缘的颜色,然后在绘图时使用这些颜色的列表。为最短路径着色blue例如2个节点之间0 and 3在 8 个节点的 erdos-renyi 图中可以按如下方式完成:
G = nx.erdos_renyi_graph(8,0.4)
p = nx.shortest_path(G,0,3)
# Set all edge color attribute to black
for e in G.edges():
G[e[0]][e[1]]['color'] = 'black'
# Set color of edges of the shortest path to green
for i in xrange(len(p)-1):
G[p[i]][p[i+1]]['color'] = 'blue'
# Store in a list to use for drawing
edge_color_list = [ G[e[0]][e[1]]['color'] for e in G.edges() ]
nx.draw(G,edge_color = edge_color_list, with_labels = True)
plt.show()
The output figure:
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)