绘制 networkx 图时出现意外错误
Unexpected error while drawing networkx graph
我有一个简单的图表,需要在我的屏幕上绘制它,这是我的代码:
def gera_grafo(matriz):
grafo = nx.to_networkx_graph(matriz, create_using=nx.Graph)
nx.draw(grafo)
plt.show()
return grafo
其中矩阵是包含连接权重的邻接表。 coda 工作得很好,但我不得不创建一个新的 python virtualenv,从那时起,即使所有必需的库都已正确安装,它也会在 nx.draw()
调用中抛出错误。我得到的错误是:
Traceback (most recent call last):
File "/run/media/luisola/A216C03316C009ED/Users/Luis/Documents/Iniciação Científica/inicia-o-cient-fica/venv/lib/python3.9/site-packages/networkx/utils/decorators.py", line 396, in _random_state
random_state_arg = args[random_state_index]
IndexError: tuple index out of range
The above exception was the direct cause of the following exception:
Traceback (most recent call last):
File "/run/media/luisola/A216C03316C009ED/Users/Luis/Documents/Iniciação Científica/inicia-o-cient-fica/criacao_do_grafo.py", line 58, in <module>
grafo = gera_grafo(matriz)
File "/run/media/luisola/A216C03316C009ED/Users/Luis/Documents/Iniciação Científica/inicia-o-cient-fica/criacao_do_grafo.py", line 39, in gera_grafo
nx.draw(grafo)
File "/run/media/luisola/A216C03316C009ED/Users/Luis/Documents/Iniciação Científica/inicia-o-cient-fica/venv/lib/python3.9/site-packages/networkx/drawing/nx_pylab.py", line 123, in draw
draw_networkx(G, pos=pos, ax=ax, **kwds)
File "/run/media/luisola/A216C03316C009ED/Users/Luis/Documents/Iniciação Científica/inicia-o-cient-fica/venv/lib/python3.9/site-packages/networkx/drawing/nx_pylab.py", line 333, in draw_networkx
pos = nx.drawing.spring_layout(G) # default to spring layout
File "/run/media/luisola/A216C03316C009ED/Users/Luis/Documents/Iniciação Científica/inicia-o-cient-fica/venv/lib/python3.9/site-packages/decorator.py", line 214, in fun
return caller(func, *(extras + args), **kw)
File "/run/media/luisola/A216C03316C009ED/Users/Luis/Documents/Iniciação Científica/inicia-o-cient-fica/venv/lib/python3.9/site-packages/networkx/utils/decorators.py", line 400, in _random_state
raise nx.NetworkXError("random_state_index is incorrect") from e
networkx.exception.NetworkXError: random_state_index is incorrect
这是我的代码错误吗?如果是这样,我该怎么办?提前致谢
正如这个问题所述:
他们是 decorator=5.0.0
的问题。正如在 GitHub (https://github.com/networkx/networkx/issues/4718) 的相关问题中所讨论的那样,decorator
>=5.0.X 应该很快可用。因此,请稍等片刻,按照上面 SO 问题中的建议升级或降级到旧版本。
编辑 decorator
==5.0.5 or >=5.0.7 修复错误
正如上面链接的问题中所讨论的,装饰器现已更新和修复。
如果您使用的是 MacOS - BigSur,networkx 将无法按您希望的方式工作。我需要在 Ubuntu.
中打开我的项目
我在使用 decorator==5.0.6
时遇到了同样的错误。
但是,升级到 5.0.7 解决了我的问题。
在降级 networkx 和装饰器后,它对我有用
networkx 2.3 pypi_0 pypi
decorator 4.3.0 pypi_0 pypi
OS: Mac OS BigSur
由于我使用的是 Windows 10,Sparky05 给出的建议对我有用,通过使用 pip install decorator==5.0.7
更新 python 中的装饰器模块的版本。
您还可以更新 networkx 库的版本。稍后我会分享 link 用于更新它,但是如果您使用 Spyder IDE 它将不起作用。它将在 VSCode.
中工作
我有一个简单的图表,需要在我的屏幕上绘制它,这是我的代码:
def gera_grafo(matriz):
grafo = nx.to_networkx_graph(matriz, create_using=nx.Graph)
nx.draw(grafo)
plt.show()
return grafo
其中矩阵是包含连接权重的邻接表。 coda 工作得很好,但我不得不创建一个新的 python virtualenv,从那时起,即使所有必需的库都已正确安装,它也会在 nx.draw()
调用中抛出错误。我得到的错误是:
Traceback (most recent call last):
File "/run/media/luisola/A216C03316C009ED/Users/Luis/Documents/Iniciação Científica/inicia-o-cient-fica/venv/lib/python3.9/site-packages/networkx/utils/decorators.py", line 396, in _random_state
random_state_arg = args[random_state_index]
IndexError: tuple index out of range
The above exception was the direct cause of the following exception:
Traceback (most recent call last):
File "/run/media/luisola/A216C03316C009ED/Users/Luis/Documents/Iniciação Científica/inicia-o-cient-fica/criacao_do_grafo.py", line 58, in <module>
grafo = gera_grafo(matriz)
File "/run/media/luisola/A216C03316C009ED/Users/Luis/Documents/Iniciação Científica/inicia-o-cient-fica/criacao_do_grafo.py", line 39, in gera_grafo
nx.draw(grafo)
File "/run/media/luisola/A216C03316C009ED/Users/Luis/Documents/Iniciação Científica/inicia-o-cient-fica/venv/lib/python3.9/site-packages/networkx/drawing/nx_pylab.py", line 123, in draw
draw_networkx(G, pos=pos, ax=ax, **kwds)
File "/run/media/luisola/A216C03316C009ED/Users/Luis/Documents/Iniciação Científica/inicia-o-cient-fica/venv/lib/python3.9/site-packages/networkx/drawing/nx_pylab.py", line 333, in draw_networkx
pos = nx.drawing.spring_layout(G) # default to spring layout
File "/run/media/luisola/A216C03316C009ED/Users/Luis/Documents/Iniciação Científica/inicia-o-cient-fica/venv/lib/python3.9/site-packages/decorator.py", line 214, in fun
return caller(func, *(extras + args), **kw)
File "/run/media/luisola/A216C03316C009ED/Users/Luis/Documents/Iniciação Científica/inicia-o-cient-fica/venv/lib/python3.9/site-packages/networkx/utils/decorators.py", line 400, in _random_state
raise nx.NetworkXError("random_state_index is incorrect") from e
networkx.exception.NetworkXError: random_state_index is incorrect
这是我的代码错误吗?如果是这样,我该怎么办?提前致谢
正如这个问题所述:decorator=5.0.0
的问题。正如在 GitHub (https://github.com/networkx/networkx/issues/4718) 的相关问题中所讨论的那样,decorator
>=5.0.X 应该很快可用。因此,请稍等片刻,按照上面 SO 问题中的建议升级或降级到旧版本。
编辑 decorator
==5.0.5 or >=5.0.7 修复错误
正如上面链接的问题中所讨论的,装饰器现已更新和修复。
如果您使用的是 MacOS - BigSur,networkx 将无法按您希望的方式工作。我需要在 Ubuntu.
中打开我的项目我在使用 decorator==5.0.6
时遇到了同样的错误。
但是,升级到 5.0.7 解决了我的问题。
在降级 networkx 和装饰器后,它对我有用
networkx 2.3 pypi_0 pypi
decorator 4.3.0 pypi_0 pypi
OS: Mac OS BigSur
由于我使用的是 Windows 10,Sparky05 给出的建议对我有用,通过使用 pip install decorator==5.0.7
更新 python 中的装饰器模块的版本。
您还可以更新 networkx 库的版本。稍后我会分享 link 用于更新它,但是如果您使用 Spyder IDE 它将不起作用。它将在 VSCode.