Python networkx-未知节点位置错误

Python networkx-未知节点位置错误,python,graph,graphviz,networkx,Python,Graph,Graphviz,Networkx,我刚刚开始使用networkx,并且正在使用它来构建有根的树。抱歉,如果这是一个微不足道的问题,我一直无法在其他地方找到解决方案。通过以下代码,我得到了错误networkx.exception.NetworkXError:Node 4没有位置。(在draw_networkx_节点中) 这在我创建节点4时立即发生。例如,当我有节点1到4和边1,2 1,3和2,4时,我会得到相同的错误。代码运行良好,直到我有了节点4(有3个节点,它运行良好)。无论指定边的顺序如何,也会发生这种情况 如果直接指定边,

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

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

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

    >>> 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.
G4=nx.有向图([(1,2)、(1,3)、(2,5)、(2,6)、(3,4)]) >>>nx.绘制(G4,位置,带_标签=假,箭头=假) 回溯(最近一次呼叫最后一次): 文件“”,第1行,在 文件“/usr/local/lib/python2.7/dist packages/networkx-1.7-py2.7.egg/networkx/drawing/nx_pylab.py”,绘图中第133行 绘制网络x(G,pos=pos,ax=ax,**kwds) 文件“/usr/local/lib/python2.7/dist packages/networkx-1.7-py2.7.egg/networkx/drawing/nx_pylab.py”,drawin_networkx中第266行 节点集合=绘制网络x节点(G、pos、**KWD) 文件“/usr/local/lib/python2.7/dist packages/networkx-1.7-py2.7.egg/networkx/drawing/nx\u pylab.py”,第373行,在draw\u networkx\u节点中 raise nx.NetworkXError('节点%s没有位置。'%e) networkx.exception.NetworkXError:节点4没有位置。
感谢

这是因为两件事:1)graphviz安装不正确,从头重新安装清除了错误

第二,线路

       pos=nx.graphviz_layout(G,prog='dot') 

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

对我来说很好-如果你只是从边构造,你会得到同样的结果吗-例如:
G=nx.DiGraph([(1,2),(1,3),(2,5),(2,6),(3,4)]
(PS:更改了缩进,以便更容易复制/复制)是的,我得到了同样的错误(编辑的问题包括这一点)啊-因此与节点无关-图形很好-绘图不起作用-因此
在我创建节点4时就会发生这种情况。以下代码起作用:如上所述初始化G.添加_节点(1)G.添加_节点(2)G.添加_节点(3)G.添加_边缘(1,2)G.添加_边缘(1,3)图纸如上所述。这同样适用于G=nx。有向图([(1,2),(1,3)])打印pos字典,看看你得到了什么。如果缺少节点4作为键,则graphvizèu布局代码出现问题。
       pos=nx.graphviz_layout(G,prog='dot')