Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/http/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 2.7 突出显示Networkx图形中的最短路径_Python 2.7_Networkx - Fatal编程技术网

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

Python 2.7 突出显示Networkx图形中的最短路径,python-2.7,networkx,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") 产生: 我

我有一个人际网络。我可以通过使用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")
产生:

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

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()

您应该在zip()之后添加一个set()
path\u edges=set(path\u edges)
以获得最短路径着色工作

hH,因此基本上绘制原始图形,然后在此基础上绘制最短过去?所以红点实际上在黑点的上面?我的图形也是有方向的,方向能用箭头表示吗?是的,这就是概念。通过跳过nx.draw()调用并明确说明要绘制哪些节点和边,可以避免“双重”绘制节点和边。不幸的是,NetworkX+Matplotlib没有箭头绘图。实际上,OP的代码中没有任何zip。如果你想把信息添加到Aric的答案中,请考虑把你的答案变成评论。