首页 > 解决方案 > Matplotlib:TypeError:“AxesSubplot”对象不可下标

问题描述

我正在尝试制作包含在两个数据帧 df1 和 df2 中的变量“x”的简单箱线图。为此,我使用以下代码:

fig, axs = plt.subplots()
axs[0, 0].boxplot([df1['x'], df2['x']])
plt.show();

但是,我明白了:

---------------------------------------------------------------------------
TypeError                                 Traceback (most recent call last)
<ipython-input-108-ce962754d553> in <module>()
----> 2 axs[0, 0].boxplot([df1['x'], df2['x']])
      3 plt.show();
      4 

TypeError: 'AxesSubplot' object is not subscriptable

有任何想法吗?

标签: pythonmatplotlibtypeerror

解决方案


fig, axs = plt.subplots()

返回一个只有一个子图的图形,因此 axs 已经持有它而没有索引。

fig, axs = plt.subplots(3)

返回子图的一维数组。

fig, axs = plt.subplots(3, 2)

返回子图的二维数组。

请注意,这只是由于 kwarg 的默认设置squeeze=True
通过将其设置为,False您可以强制结果为二维数组,与子图的数量或排列无关。


推荐阅读