首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >networkx -未知节点位置错误

networkx -未知节点位置错误
EN

Stack Overflow用户
提问于 2012-12-17 00:07:04
回答 1查看 2.5K关注 0票数 3

我刚刚开始使用networkx,并且正在使用它来构建有根的树。如果这是一个微不足道的问题,很抱歉,我在其他地方找不到解决方案。使用下面的代码,我得到了错误networkx.exception.NetworkXError: Node4没有位置。(在draw_networkx_nodes中)。

代码语言:javascript
复制
import networkx as nx 
import matplotlib.pyplot as plt
G = nx.DiGraph() 
G.add_node(1)
G.add_node(2)
G.add_node(3)
G.add_node(4)
G.add_node(5)
G.add_node(6)
G.add_edge(1,2) 
G.add_edge(1,3)
G.add_edge(2,5)
G.add_edge(2,6)
G.add_edge(3,4)
plt.title("Test") 
pos=nx.graphviz_layout(G,prog='dot') 
nx.draw(G,pos,with_labels=False,arrows=False) 
plt.savefig('nx_test.png') 

这在我创建节点4的时候就会发生。例如,当我有节点1到4和边1,2,1,3和2,4时,我得到了相同的错误。代码工作良好,直到我有节点4(有3个节点,它工作得很好)。无论我指定边的顺序如何,也会发生这种情况。

如果我直接指定边,我会得到相同的错误:

代码语言:javascript
复制
    >>> G4 = nx.DiGraph([(1, 2), (1, 3), (2, 5), (2, 6), (3, 4)])
    >>> nx.draw(G4,pos,with_labels=False,arrows=False) 


    Traceback (most recent call last):
       File "<stdin>", line 1, in <module>
      File "/usr/local/lib/python2.7/dist-packages/networkx-1.7-py2.7.egg/networkx/drawing/nx_pylab.py", line 133, in draw
        draw_networkx(G,pos=pos,ax=ax,**kwds)
      File "/usr/local/lib/python2.7/dist-packages/networkx-1.7-py2.7.egg/networkx/drawing/nx_pylab.py", line 266, in draw_networkx
        node_collection=draw_networkx_nodes(G, pos, **kwds)
      File "/usr/local/lib/python2.7/dist-packages/networkx-1.7-py2.7.egg/networkx/drawing/nx_pylab.py", line 373, in draw_networkx_nodes
        raise nx.NetworkXError('Node %s has no position.'%e)
       networkx.exception.NetworkXError: Node 4 has no position.

谢谢

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2012-12-24 18:49:18

这是由于两件事: 1) graphviz的安装不正确,从头重新安装清除了该错误。

其次,线路

代码语言:javascript
复制
       pos=nx.graphviz_layout(G,prog='dot') 

必须始终在绘制图形之前放置(并重复),以考虑到新的节点/边。

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/13903067

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档