Проблема исходит от линии ax[i][j].set_xticklabels(df.index, rotation=45, ha='right')
. Вы заменяете несколько тиков, которые были автоматически выбраны matplotlib, на первые несколько значений вашего индекса даты.
Вместо этого я бы использовал plt.setp(ax.get_xticklabels(), rotation=45, ha='right')
для изменения поворота существующих меток.
Обратите внимание, что вы установили sharex=True
, поэтому вам не нужно выполнять эту операцию на всех осях, достаточно просто применить одну из них для глобального применения
for i in range(4):
for j in range(3):
sns.lineplot(x=df.index, y=df[col[index]], ax=ax[i][j])
index = index + 1
plt.setp(ax[0,0].get_xticklabels(), rotation=45, ha='right')
plt.tight_layout()