小编典典

具有 matplotlib 子图的数组索引过多

all

我正在尝试绘制 2 个不同的数据集,但我不知道如何修复子图(如果我放 2,2 它可以工作,但如果我尝试其他任何东西,它会给我一个错误)

fig, axs = plt.subplots(nrows=2, ncols=1)

axs[0,1].plot(adj_close['SOL-USD'])
axs[2,1].set_title('SOL')

plt.show()

错误:

----> 6 axs[0,0].plot(adj_close['SOL-USD'])
      7 axs[0,0].set_title('SOL')
      8 axs[0,1].plot(adj_close['ETH-USD'])

TypeError: 'AxesSubplot' object is not subscriptable

IndexError                                Traceback (most recent call last)
Input In [356], in <cell line: 3>()
      1 #ploting the histogram
      2 fig, axs = plt.subplots(2,1,figsize=(16,8),gridspec_kw ={'hspace': 0.2, 'wspace': 0.1})
----> 3 axs[0,0].hist(returns['SOL-USD'], bins=50, range=(-0.2, 0.2))
      4 axs[0,0].set_title('SOL')
      5 axs[1,0].hist(returns['ETH-USD'], bins=50, range=(-0.2, 0.2))

IndexError: too many indices for array: array is 1-dimensional, but 2 were indexed

子图 2,2 目前的样子: 子图 2,2 目前的样子


阅读 107

收藏
2022-06-27

共1个答案

小编典典

这里发生的是,matplotlib.pyplot.subplots()如果 nrows 或 ncols 等于 1,则为 fig 中的轴创建一个一维数组。您可以通过在当前工作区中显示变量来查看这一点。

>>> fig, axes = plt.subplots(nrows=2, ncols=1)
>>> axes
array([<AxesSubplot:>, <AxesSubplot:>], dtype=object)

这就是为什么尝试调用多个时会出现索引错误的原因。有关更多文档,这里是函数matplotlib.pyplot.subplots的站点

2022-06-27