Python Can';t在NetworkX中查看节点列表
我是个新手。我正在玩Networkx。我在看医生方面有困难。对于一个缺乏经验的人来说,我觉得它们不是很好用 我已经为图形手动创建了一个节点列表和一个edglist。我能成功地画出来。然而,我看到了以下问题:Python Can';t在NetworkX中查看节点列表,python,python-2.7,networkx,Python,Python 2.7,Networkx,我是个新手。我正在玩Networkx。我在看医生方面有困难。对于一个缺乏经验的人来说,我觉得它们不是很好用 我已经为图形手动创建了一个节点列表和一个edglist。我能成功地画出来。然而,我看到了以下问题: 当我print G.nodes()我得到一个节点列表,但当我print G.edges()我什么也得不到 列表项path=nx。最短路径(G,source='Debra',target='John')返回一个错误 networkx.exception.NetworkXNoPath:黛布拉和约
print G.nodes()
我得到一个节点列表,但当我print G.edges()
我什么也得不到path=nx。最短路径(G,source='Debra',target='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图形中。尝试添加行:
G.add_edges_from(edges)
添加节点后(或代替)。绘制时可以看到边的原因是,您正在将它们显式地传递给
nx.draw\u networkx\u edges
函数,在如上所述添加它们之后,这将不再是必需的。您似乎没有将边添加到networkx图形中。尝试添加行:
G.add_edges_from(edges)
添加节点后(或代替)。绘制时可以看到边的原因是,您要将它们显式地传递给
nx.draw\u networkx\u edges
函数,在如上所述添加它们之后,这将不再是必需的。但是“nx.draw\u networkx\u edges”不这样做吗?我想我对这些概念感到困惑。好的,它工作了,但只有在通过删除最后的参数将edge 3元组更改为2元组之后,但“nx.draw\u networkx\u edges”不这样做吗?我想我对这些概念感到困惑了。好吧,它开始工作了,但只是在通过删除最后一个参数将edge 3元组更改为2元组之后