matplotlib:AttributeError:'AxesSubplot'对象没有'add_axes'属性

34

不确定如何修复以下属性错误:

AttributeError: 'AxesSubplot' object has no attribute 'add_axes'

问题似乎与我设置绘图的方式有关:

gridspec_layout = gridspec.GridSpec(3,3)
pyplot_2 = fig.add_subplot(gridspec_layout[2])

ax = WCSAxes(fig, [0.1, 0.1, 0.8, 0.8], wcs=wcs)
pyplot_2.add_axes(ax)

有人知道如何解决这个问题吗?非常感谢。

5个回答

6

5
你的问题中并没有提供太多细节,但我猜测一下。 错误信息已经很明显了。你不能将add_axes添加到pyplot_2,因为pyplot_2是一个matplotlib.axes.AxesSubplot对象,而它们并没有定义add_axes方法。
只有matplotlib.figure.Figure对象上定义了add_axes方法。
根据我在WCSAxes官方文档中的简要浏览,他们推荐的方法是:
wcs = astropy.wcs.WCS(....)
fig = matplotlib.pyplot.figure()
pyplot_2 = fig.add_subplot(gridspec_layout[2], projection=wcs)

1
我进行了conda update pandas,错误消失了。我找不到其他任何有效的方法。
我的错误略有不同(不是'add_axes')。这个错误发生在我试图在matplotlib子图中使用pandas.DataFrame.plot时。
我之前和之后都使用的是pandas 0.25.3,并且升级/降级了许多包。

0

我几天前在Macbook和Lenovo笔记本电脑上遇到了同样的错误。我在两台电脑上都使用Anaconda进行Python安装。

这是Matplotlib包管理的问题。所以我的解决方案是删除Matplotlib并重新安装它。然后错误就消失了。


-3

只需将matplotlib降级到旧版本即可解决问题。我将其降级到1.4.0,问题得到了解决。


128
降级软件包不应是解决方案。 - yeliabsalohcin
1
@yeliabsalohcin 如果你想的话,你可以fork它。 - Rainb

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接