python - 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
有任何想法吗?
解决方案
fig, axs = plt.subplots()
返回一个只有一个子图的图形,因此 axs 已经持有它而没有索引。
fig, axs = plt.subplots(3)
返回子图的一维数组。
fig, axs = plt.subplots(3, 2)
返回子图的二维数组。
请注意,这只是由于 kwarg 的默认设置squeeze=True
。
通过将其设置为,False
您可以强制结果为二维数组,与子图的数量或排列无关。
推荐阅读
- node.js - 出现错误:“saveError ENOENT:没有这样的文件或目录,打开'.../package.json'
- css - -webkit-box 在 IE 中不起作用,但在 chrome 中起作用
- python-3.x - iPad Pro 上 Pythonista 中的 Pyperclip 错误
- javascript - reacjs 像打字机文本一样动画占位符 - 带有材料 ui 的 redux 表单
- php - 我想将 CSS 添加到我的 php 代码中。怎么做?
- php - 我可以通过更改网站地址来修复未定义索引错误吗?
- python - 尝试将所有作为对象的列转换为字符串
- lotusscript - 如何从时区日期时间字段创建 GMT 字段
- pandas - Pandas - 使用字典和求和值将列表中的字符串转换为整数
- python - 需要从列表内的列表中删除 x 个字符