Python Matplotlib:TypeError:';AxesSubplot';对象不可下标

Python Matplotlib:TypeError:';AxesSubplot';对象不可下标,python,matplotlib,typeerror,Python,Matplotlib,Typeerror,我试图对包含在两个数据帧df1和df2中的变量“x”进行简单的方框图。为此,我使用以下代码: fig, axs = plt.subplots() axs[0, 0].boxplot([df1['x'], df2['x']]) plt.show(); 然而,我明白了: --------------------------------------------------------------------------- TypeError

我试图对包含在两个数据帧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
---------------------------------------------------------------------------
TypeError回溯(最近一次调用上次)
在()
---->2轴[0,0]。箱线图([df1['x'],df2['x']))
3 plt.show();
4.
TypeError:“AxeSubPlot”对象不可下标
有什么想法吗

fig, axs = plt.subplots()
返回一个只有一个子批次的图形,因此axs已在不编制索引的情况下保存该图形

fig, axs = plt.subplots(3)
返回子批次的1D数组

fig, axs = plt.subplots(3, 2)
返回子批次的二维数组

fig, axs = plt.subplots(3, 2)
请注意,这只是由于kwarg的默认设置。

通过将其设置为
False
可以强制结果为2D数组,与子批次的数量或排列无关。

谢谢!!哇,这太明显了哈:)这是可怕的编程实践。他们正在发明不必要的封边盒。现在我必须为只有1的情况编写不同的代码subplot@MuhsinFatih我想我能想象你的意思。您能描述一下,您必须以何种具体方式编写不同的代码吗?这是我必须添加的内容,以处理边缘情况:axs=np.array(axs);axs=np.重塑(axs,n)。n是形状variable@MuhsinFatih请参阅我的编辑,这应该会有所帮助
fig, axs = plt.subplots(3, 2)