簡體   English   中英

networkx - 未知節點位置錯誤

[英]networkx - unknown node position error

我剛剛開始使用networkx並使用它來構建root樹。 抱歉,如果這是一個微不足道的問題,我無法在其他地方找到解決方案。 使用以下代碼,我得到錯誤networkx.exception.NetworkXError:節點4沒有位置。 (在draw_networkx_nodes中)。

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個節點運行良好)。 無論我指定邊緣的順序如何,這也會發生。

如果我直接指定邊緣,我會得到相同的錯誤:

    >>> 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.

謝謝

這是由於兩件事:1)graphviz安裝不正確,從頭開始重新安裝清除了錯誤。

其次,線

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

必須始終在繪制圖形之前放置(並重復),以考慮新的節點/邊緣。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM