我有一个简单的图形,需要在我的屏幕上绘制它,这是我的代码:
def gera_grafo(matriz):
grafo = nx.to_networkx_graph(matriz, create_using=nx.Graph)
nx.draw(grafo)
plt.show()
return grafo
Run Code Online (Sandbox Code Playgroud)
其中矩阵是包含连接权重的邻接列表。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
Run Code Online (Sandbox Code Playgroud)
这是我的代码错误吗?如果是这样,我该怎么办?提前致谢
正如这个问题所述:networkx 显示 random_state_index 不正确
他们是decorator=5.0.0. 正如 GitHub 上的相关问题 ( https://github.com/networkx/networkx/issues/4718 ) 中所讨论的,decorator>=5.0.X 应该很快可用。因此,请稍等片刻升级或降级到旧版本,如上面 SO 问题中的建议。
decorator==5.0.5 或 >=5.0.7 修复错误正如上面链接的问题中所讨论的,装饰器现已更新和修复。