繁体   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