Есть две проблемы с вашим кодом:
- Во-первых, вы определяете
subplots()
внутри цикла for, что неверно. Вы должны определить это только один раз снаружи.
- Во-вторых, вам нужно использовать
axes[num]
вместо axes[num, 0]
для ссылки на конкретный участок, так как у вас есть только один столбец, поэтому вы получаете > IndexError
. Индексация axes[num, 0]
, axes[num, 1]
и т. Д. Будет работать, если у вас более 1 столбца.
Решение
# import commands here
df = pd.read_csv('XXXX', encoding='utf-8')
num = 0
fig, axes = plt.subplots(nrows=8, ncols=1) # <---moved outside for loop
for dim in ['A','B','C','D','E','F','G','H']:
df[dim].plot(ax=axes[num])
plt.xlabel(dim)
num += 1
plt.show()
Альтернатива с использованием enumerate
избавления от num
переменной
fig, axes = plt.subplots(nrows=8, ncols=1)
for i, dim in enumerate(['A','B','C','D','E','F','G','H']):
df[dim].plot(ax=axes[i])
plt.xlabel(dim)
plt.show()