一、问题描述
在使用networkx的draw绘图时nx.draw(g,pos=nx.spring_layout(g))
,报错:TypeError: '_AxesStack' object is not callable
二、原因
可能是当前python环境下的networkx和matplotlib的版本不匹配。我报错时的networkx=2.8,matplotlib=3.8.1
三、解决方法
1、查看当前python环境中的networkx和matplotlib的版本
import matplotlib
import networkx as nx
print(f"matplotlib's version: {matplotlib.__version__}")
print(f"networkx's version: {nx.__version__}")
>>> matplotlib's version: 3.8.1
>>> networkx's version: 2.8
2、卸载networkx
在命令行输入:
pip uninstall networkx
# 或者 conda uninstall networkx
是否卸载相关依赖,输入:y
3、安装netwrokx==2.8.8
在命令行输入:
pip install networkx==2.8.8
# 或使用清华镜像
# pip install networkx==2.8.8 -i https://pypi.tuna.tsinghua.edu.cn/simple
或者在jupyter notebook中的运行单元运行如下指令:
%pip install networkx==2.8.8 -i https://pypi.tuna.tsinghua.edu.cn/simple
4、重启编译环境
四、最后
出现 TypeError: '_AxesStack' object is not callable
可能 是networkx
和matplotlib==3.8.1
版本不匹配的原因。 似乎 安装最新版的networkx
也能解决该问题,但根据自己需要考虑是否安装最新版。如有其他原因和解决方式,欢迎补充!