Я пытаюсь создать фигуру с четырьмя подсюжетами, используя подход, основанный на объектах Matplotlib. У меня проблемы с установкой оси X на часовые маркеры на каждом графике. В моем нынешнем коде почасовые отметки сохраняются только на последнем из четырех вспомогательных участков
У меня есть список, который содержит четыре кадра данных, которые были прочитаны из CSV. Я использовал pd.to_datetime для создания индекса. Нет проблем.
Я могу перебрать четыре кадра данных и вывести свою переменную y (TS_comp) в зависимости от времени. это работает нормально, и я получаю дату / время на каждой оси X. Но я хочу, чтобы на каждой оси х были только часовые метки. Когда я добавляю код в цикл для установки основного локатора, это заканчивается тем, что метки оси X стираются на первых трех подсюжетах. Две строки кода из цикла ниже:
ax.xaxis.set_major_locator(hours)
ax.xaxis.set_major_formatter(mdates.DateFormatter('%H'))
Я не понимаю, почему это происходит, так как каждый раз, когда он проходит цикл, он должен обращаться к другому объекту оси. Обратите внимание, что временные диапазоны по оси X различны, поэтому непросто разделить ось X между вспомогательными участками.
fig, ax = plt.subplots(nrows=2, ncols=2)
i=0
hours = mdates.HourLocator(interval = 1)
for ax in fig.get_axes():
ax.plot(dfs[i].TS_comp,'k-',markersize = 0.5)
ax.xaxis.set_major_locator(hours)
ax.xaxis.set_major_formatter(mdates.DateFormatter('%H'))
i=i+1;
Ожидайте получения почасовых маркеров на каждом из вспомогательных участков, заканчивающихся ежечасными маркерами только на последнем участке