当前位置: 首页 > 知识库问答 >
问题:

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

潘灵均
2023-03-14

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

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

共有2个答案

秦禄
2023-03-14

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

慎志国
2023-03-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()
 类似资料:
  • 这个问题是NetworkX特有的。我可以创建自己的函数来完成所有我需要的事情,但是这需要更长的时间,所以我想避免它。 情况: 我有一个未加权图,由NetworkX无向图表示。从这个图中,我寻找“最短循环”——也就是说,对于给定的节点k,我正在寻找最短的简单路径(只通过一个节点一次),它离开k,然后返回k。 为了实现这一点,我想使用任何NetworkX最短路径算法,并从节点k到节点k进行搜索。问题是

  • 在OSMnx中,街道的定向是为了保持单向性,因此,当我尝试使用Networkx查找最短路径时,我得到NetworkXNoPath:No path to(osmid)。如何解决此问题?我需要在具有单向街道的网络中找到最短路径。 见下面的代码:

  • 我想计算标记图中具有相同标签的节点的平均最短路径。例如,红色标记为A,黑色标记为B。 V_m是具有相同标签的顶点。n{i,j}是最短路径数,d{i,j}是测地距离。 我想使用Networkx来实现它。开始使用节点属性进行标记。 我可以用 现在我只想将键/值对保留在标签为例如“A”的位置。因此,我可以关注具有相同标签的节点。我希望它不是抽象的,但你有什么想法吗? 提前谢谢。

  • 在一个html页面中,我有一个选择菜单(a, b, c, d)和一个条形图(a, b, c, d)。我想做的是在选择菜单中选择的条形图中突出显示相应的条形图。

  • 我有一个邻接矩阵(作为一个数据帧),每个单元都有从a到B的概率 行是“从”,列是“到”。每行的总和是1.0。 我已经建立了一个网络图,现在概率是图的“权重”。 我试图找到最可能的路径——即权重的乘积是最低的,而不是总和。知道networkx的最短路径查找i项最优路径的权重之和。如何根据最优产品找到最优路径? 编辑:输入是图G、节点“源”和节点“目标”,为简单起见,它们确实通过多条路径连接。我想在G

  • 我试图解决的问题是: 给出一个图,其中每个边都用红色或蓝色着色: a)给出了生成两顶点(s,t)之间经过最小数量红边的路径的算法。