无法在NetworkX中查看节点列表

2024-05-08 11:19:13 发布

您现在位置:Python中文网/ 问答频道 /正文

我是个新手。我在玩Networkx。我对医生有困难。我觉得对一个没有经验的人来说,它们不是很好用。在

我已经为一个图手动创建了一个节点列表和一个edglist。我能画成功。然而,我看到了以下问题:

  1. 当我print G.nodes()我得到一个节点列表,但是当我print G.edges()时,我什么也得不到。在
  2. 列表项path = nx.shortest_path(G, source='Debra', target='John')返回错误

networkx.exception.NetworkXNoPath: No path between Debra and John.

下面是我的示例代码:

G = nx.DiGraph()        
edges = [
('Freda', 'Olive', 0), ('Freda', 'John', 0), ('Freda', 'Debra', 0), ('Ollie', 'Mercedes', 0), 
('Ollie', 'Freda', 0), ('Ollie', 'Bryant', 0), ('Debra', 'Walter', 0), ('Debra', 'Levi', 0), 
('Debra', 'Jennie', 0), ('Debra', 'Robin', 0), ('Olive', 'John', 0), ('Olive', 'Ollie', 0), 
('Levi', 'Ollie', 0), ('Levi', 'John', 0), ('Levi', 'Walter', 0), ('Jennie', 'Levi', 0), 
('Jennie', 'John', 0), ('Jennie', 'Freda', 0), ('Jennie', 'Robin', 0), ('Mercedes', 'Walter', 0),
('Mercedes', 'Robin', 0), ('Mercedes', 'Bryant', 0), ('John', 'Bryant', 0), ('John', 'Debra', 0), 
('John', 'Walter', 0), ('Robin', 'Ollie', 0), ('Bryant', 'Olive', 0), ('Bryant', 'Ollie', 0), 
('Bryant', 'Freda', 0), ('Bryant', 'Mercedes', 0), ('Walter', 'John', 0), ('Walter', 'Levi', 0), 
('Walter', 'Bryant', 0)]

nodes = ['Freda', 'Ollie', 'Debra', 'Mercedes', 'Levi', 'Jennie', 'Olive', 'John', 'Robin', 'Bryant', 'Walter']

G.add_nodes_from(nodes)
pos = nx.spring_layout(G)
nx.draw_networkx_nodes(G,pos,nodelist=nodes,node_color='k',alpha=0.1)
nx.draw_networkx_labels(G,pos)

nx.draw_networkx_edges(G,pos,edgelist=edges,edge_color='k',width=1, alpha=0.2)
print G.nodes()
print G.edges()    
path = nx.shortest_path(G, source='Debra', target='John')

如有任何反馈,我们将不胜感激。在


Tags: pathjohnmercedesrobinnodesnxedgeswalter
1条回答
网友
1楼 · 发布于 2024-05-08 11:19:13

似乎您没有将边添加到NetworkX图形中。尝试添加行:

G.add_edges_from(edges)

添加节点之后(或代替添加节点)。绘制时可以看到边的原因是因为您将它们显式地传递给nx.draw_networkx_edges函数,在如上所述添加它们之后,就不需要这样做了。在

相关问题 更多 >