簡體   English   中英

networkx.exception.NetworkXError:節點 64 沒有 position

[英]networkx.exception.NetworkXError: Node 64 has no position

我在標題中收到錯誤,已經有一些與此類似的問題,但似乎沒有一個主題對我有用。 這是我在 python 中的代碼:

G = nx.Graph()
def addnodeoNx():
    for k in randomGraph:
        for j in randomGraph[k]:
            G.add_node(j)
            G.add_edges_from([(k, j)])
addnodeoNx()
print(G)

subax1 = plt.subplot(121)
nx.draw(G, with_labels=True, font_weight='bold')
subax2 = plt.subplot(122)
nx.draw_shell(G, nlist=[range(5, 10), range(5)], with_labels=True, font_weight='bold')

基本上,我試圖在 NetworkX 中繪制一個 randomGraph,在上面的代碼中randomGraph是一個字典,鍵是所有邊,值是每個邊連接的邊數組,但是當我嘗試運行代碼時,它給了我以下錯誤:

File "c:\Users\besan\OneDrive\Desktop\LAM\testall.py", line 124, in <module>
    nx.draw_shell(G, nlist=[range(5, 10), range(5)], with_labels=True, font_weight='bold')
  File "C:\Users\besan\AppData\Local\Programs\Python\Python39\lib\site-packages\networkx\drawing\nx_pylab.py", line 1267, in draw_shell
    draw(G, shell_layout(G, nlist=nlist), **kwargs)
  File "C:\Users\besan\AppData\Local\Programs\Python\Python39\lib\site-packages\networkx\drawing\nx_pylab.py", line 121, in draw
    draw_networkx(G, pos=pos, ax=ax, **kwds)
  File "C:\Users\besan\AppData\Local\Programs\Python\Python39\lib\site-packages\networkx\drawing\nx_pylab.py", line 333, in draw_networkx
    draw_networkx_nodes(G, pos, **node_kwds)
  File "C:\Users\besan\AppData\Local\Programs\Python\Python39\lib\site-packages\networkx\drawing\nx_pylab.py", line 456, in draw_networkx_nodes
    raise nx.NetworkXError(f"Node {e} has no position.") from e
networkx.exception.NetworkXError: Node 19 has no position.

nlist告訴draw_shell將哪些節點放入內部 shell 和外部 shell。 draw_shell的源代碼在這里

然后draw_shell使用pos=shell_layout(G, nlist=nlist)從節點創建位置。 然后它用nx.draw(G,pos)繪制。

如果尚未定義節點的 position,則 function nx.draw無法處理繪圖。

在您的情況下,您已將節點 5 到 9 放入一個 shell 並將 0 到 4 放入另一個中。 但是 9 以上的任何節點都沒有 position。

當您將參數傳遞給您從某處復制的 function 時,您應該始終小心。 參數的值很可能很重要,否則它只會使用默認值。

暫無
暫無

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

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