python networkx - 通过为图形绘制着色来标记边缘

Men*_*eni 3 python graph networkx

我正在使用 networkx 来研究图论实现,我想知道有没有办法标记给定图中的某些边?例如 - 假设我有一个图形 G 并且我找到了从节点 x 到节点 y 的最短路径,我如何标记路径以便在绘制图形时它将以不同的颜色绘制?

Abd*_*ehy 5

标记边缘可以通过设置属性颜色来完成,例如使用您想要的每个边缘的颜色,然后在绘制时使用这些颜色的列表。在8 个节点的 erdos-renyi 图中,将2 个节点(例如0 和 3)之间的最短路径着色为蓝色,可以按如下方式完成:

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()
Run Code Online (Sandbox Code Playgroud)

输出图: 在此处输入图片说明