突出显示Networkx图中的最短路径

时间:2014-06-03 20:31:49

标签: python-2.7 networkx

我有一个人的网络。我可以通过使用Networkx创建有向图来显示它们的连接方式。

以下是代码示例:

edges = edglist
nodes = nodelist
dg.add_weighted_edges_from(edges)
#print dg.nodes()
print nx.shortest_path(dg, source='Freda', target='Levi', weight=None)
nx.draw(dg)
plt.savefig("path.png")

哪个产生: connections graph

我还可以计算两个节点之间的最短路径。然而,我坚持的是如何突出这个“最短路径”。任何指针都将非常感激。顺便说一句,我是新手

2 个答案:

答案 0 :(得分:14)

import matplotlib.pyplot as plt
G = nx.karate_club_graph()
pos = nx.spring_layout(G)
nx.draw(G,pos,node_color='k')
# draw path in red
path = nx.shortest_path(G,source=14,target=16)
path_edges = zip(path,path[1:])
nx.draw_networkx_nodes(G,pos,nodelist=path,node_color='r')
nx.draw_networkx_edges(G,pos,edgelist=path_edges,edge_color='r',width=10)
plt.axis('equal')
plt.show()

enter image description here

答案 1 :(得分:0)

您应该在zip()之后添加set()path_edges = set(path_edges),以获取最短的路径着色工作