2
我使用networkx来研究图论的实现,我想知道是否有一种方法可以标记给定图中的某些边?例如,假设我有一个图G,并且我找到了从节点x到节点y的最短路径,那么我如何标记路径,以便在绘制图时它将以不同的颜色绘制?python networkx - 通过为图形着色标记边缘
我使用networkx来研究图论的实现,我想知道是否有一种方法可以标记给定图中的某些边?例如,假设我有一个图G,并且我找到了从节点x到节点y的最短路径,那么我如何标记路径,以便在绘制图时它将以不同的颜色绘制?python networkx - 通过为图形着色标记边缘
标记边缘可以通过设置一个属性颜色例如用于每个边缘的颜色,然后在绘图时使用这些颜色列表来完成。着色的最短路径中的节点蓝色 2之间例如0和3在8个节点的鄂尔多斯-仁义图表可以做如下:
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()
有无你看着'networkx。 set_edge_attributes'? –
我看了,但我不太明白如何使用它来达到我的目的 – Meni