我是个新手。我在玩Networkx。我对医生有困难。我觉得对一个没有经验的人来说,它们不是很好用。在
我已经为一个图手动创建了一个节点列表和一个edglist。我能画成功。然而,我看到了以下问题:
print G.nodes()
我得到一个节点列表,但是当我print G.edges()
时,我什么也得不到。在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')
如有任何反馈,我们将不胜感激。在
似乎您没有将边添加到NetworkX图形中。尝试添加行:
添加节点之后(或代替添加节点)。绘制时可以看到边的原因是因为您将它们显式地传递给
nx.draw_networkx_edges
函数,在如上所述添加它们之后,就不需要这样做了。在相关问题 更多 >
编程相关推荐