Это потому, что ваш массив осей похож на показанный ниже
[[<matplotlib.axes._subplots.AxesSubplot object at 0x000001DCA32BB2E0>
<matplotlib.axes._subplots.AxesSubplot object at 0x000001DCA54476A0>
<matplotlib.axes._subplots.AxesSubplot object at 0x000001DCA547D250>]]
, поэтому ваш массив имеет только один график с тремя объектами в нем. пока вы запускаете свой код, l oop будет выполняться только один раз. нет проблем с приращением счетчика. вы можете проверить это, напечатав i
в конце l oop. поэтому, чтобы заставить этот код работать на вашем пути, сначала вытащите первый элемент из массива, который сделает массив осей с 3 объектами ie 3 графика.
from matplotlib import pyplot as plt
fig= plt.figure()
fig,axes = plt.subplots(nrows=1, ncols=3,squeeze=False)
fig.tight_layout()
i=0
print('figarray1',axes)
axes=axes[0]
print('figarray2',axes)
for current_ax in axes:
current_ax.set_title(f"plot: {i}")
i+=1
print(i)
plt.show()
выходной график
введите описание изображения здесь
Клеммный выход
figarray1 [[<matplotlib.axes._subplots.AxesSubplot object at 0x0000020AEB72B2E0>
<matplotlib.axes._subplots.AxesSubplot object at 0x0000020AEF9266A0>
<matplotlib.axes._subplots.AxesSubplot object at 0x0000020AEF95D250>]]
figarray2 [<matplotlib.axes._subplots.AxesSubplot object at 0x0000020AEB72B2E0>
<matplotlib.axes._subplots.AxesSubplot object at 0x0000020AEF9266A0>
<matplotlib.axes._subplots.AxesSubplot object at 0x0000020AEF95D250>]
1
2
3