Вам необходимо передать параметр ax
в plot.bar
, чтобы указать, на каком из ваших axes
, возвращаемых из plt.subplots
, должна быть построена гистограмма, то есть:
fig, axes = plt.subplots(nrows=4, ncols=3)
fig.subplots_adjust(hspace=0.5)
fig.suptitle('Main plots')
for i in range(1,13):
month = [i]
ax = axes[i - 1]
DF_sub = DF[DF['months'].isin(month)]
out = pd.cut(DF_sub['new'], bins=[0, 0.25, 0.5, 0.75, 1], include_lowest=True)
out_norm = out.value_counts(sort=False, normalize=True)
out_norm.plot.bar(rot=0, color="b", figsize=(6,4), ax=ax)
plt.title('Subplot -' + str(i))
Если вы не передадите параметр ax
, гистограмма будет автоматически нанесена на текущую активную ось, которая является самой последней созданной, если не указано иное.