Python错误:索引8超出了轴0大小为8的边界



我试图运行此代码来生成一些图形,但每次出现此错误。我的部分代码:

import matplotlib.pyplot as plt
fig, axs = plt.subplots(8, sharex=False, sharey=False,figsize=(15,15))
fig.suptitle('Todas Features para estado Normal ')
for i in data_n.columns:
axs[i].plot(data_n[i])
axs[i].set_title('Coluna {} do Dataset'.format(i))

错误:

IndexError                                Traceback (most recent call last)
<ipython-input-129-0fef11f34a8c> in <module>
3 fig.suptitle('Todas Features para estado Normal ')
4 for i in data_n.columns:
----> 5     axs[i].plot(data_n[i])
6     axs[i].set_title('Coluna {} do Dataset'.format(i))
IndexError: index 8 is out of bounds for axis 0 with size 8

当我尝试更改OS子图的数量时,没有任何变化。

不清楚您的data_n变量是什么,但我猜它可能是pandas.DataFrame对象。

Pythonfor循环是0索引,你的IndexError错误发生在索引8,所以data_n.columns可能是一个可迭代的pandas.DataFrame.columns对象,有超过8个值。您可以通过len(data_n.columns)检查这一点。

考虑尝试:

import matplotlib.pyplot as plt
fig, axs = plt.subplots(len(data_n.columns), sharex=False, sharey=False,figsize=(15,15))
fig.suptitle('Todas Features para estado Normal ')
for i in data_n.columns:
axs[i].plot(data_n[i])
axs[i].set_title('Coluna {} do Dataset'.format(i))

这只在data_n列的名称是整数(它们可能是也可能不是)的情况下才有效。要处理诸如col1col2等列名,需要使用整数索引,如下面的基本示例所示:

indexer = 0
for i in data_n.columns:
axs[indexer].plot(data_n[i])
axs[indexer].set_title('Coluna {} do Dataset'.format(i))
indexer += 1

最新更新