我有一个人的网络。我可以通过使用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")
哪个产生:
我还可以计算两个节点之间的最短路径。然而,我坚持的是如何突出这个“最短路径”。任何指针都将非常感激。顺便说一句,我是新手
答案 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()
答案 1 :(得分:0)
您应该在zip()之后添加set()path_edges = set(path_edges)
,以获取最短的路径着色工作