Leo*_*yse 19 python matplotlib networkx pycharm
在学习了一个在线教程之后,我发现即使是一小段段落也很难运行。这是我想写入图中的内容:将有向非循环未加权矩阵写入图中,但是我遇到了矩阵表示和图片表示的问题。前者给出警告并用数组替换输出矩阵。然而,图片绘制总是只输出错误,我不知道为什么。这是我的代码
import networkx as nx
import matplotlib.pyplot as plt
import matplotlib
matplotlib.use('TkAgg')
import numpy as np
A = np.array([[0,1,1,0],
[1,0,1,1],
[1,1,0,0],
[0,1,0,0]])
G=nx.from_numpy_array(A)
nx.draw(G,with_lables=True)
Run Code Online (Sandbox Code Playgroud)
我的networkx版本是2.8.4,matplotlib版本是3.6.0,与提到的版本教程相匹配。这是错误:
'_AxesStack' object is not callable
Run Code Online (Sandbox Code Playgroud)
小智 33
开始使用
nx.draw_networkx(G, with_labels=True)
Run Code Online (Sandbox Code Playgroud)
代替
nx.draw(G, with_labels=True)
Run Code Online (Sandbox Code Playgroud)
支持的论点draw()
是with_labels
。请修正你的错字。
该错误已在this
networkx 的 GitHub 存储库的线程中进行了讨论,并建议使用 matplotlib 3.6.0rc1 的用户将 networkx 更新到最新版本。
修复了拼写错误,以及 networkx 版本 2.8.7 和 matplotlib 版本 3.5.1,代码生成下图:
编辑:
如果您使用的是networkx v3.1并且不希望降级Matplotlib,请考虑Mohamad Sobhi的这个答案。
该错误与 matplotlib 的已弃用功能有关。出现此问题的原因是您运行的是 networkx 版本 2.8.4。(networkx 现在最新的稳定版本是 3.0.0 版)。
根据您的解释,我想您正在使用 conda 环境,您可以在https://anaconda.org/conda-forge/networkx找到该环境。最新版本仍然是2.8.4。
我认为你的问题的解决方案是。