Во-первых, чтобы иметь возможность использовать тикеры matplotlib на графиках дат панд, вам нужно установить опцию совместимости x_compat=True
.
X.plot(ax = ax, x_compat=True)
Далее, чтобы отформатировать ось x, вам нужно использовать xaxis
. Чтобы установить второстепенные метки, вам нужно использовать set_minor_formatter
.
Чтобы назначить несколько тиков на определенные позиции, вам нужно Locator
, а не Formatter
.
Теперь кажется, что вы хотите полностью контролировать выходной график, поэтому вам нужно установить основные и второстепенные локаторы и форматеры.
Обратите внимание, что маркировка каждый месяц обязательно позволит этикеткам перекрываться. Таким образом, потребуется более крупная фигура или меньший размер шрифта.
fig, ax = plt.subplots(figsize=(12,3))
X.plot(ax = ax, x_compat=True)
ax.xaxis.set_major_locator(mdates.YearLocator())
ax.xaxis.set_minor_locator(mdates.MonthLocator())
ax.xaxis.set_major_formatter(mdates.DateFormatter("\n%Y"))
ax.xaxis.set_minor_formatter(mdates.DateFormatter("%b"))
plt.setp(ax.get_xticklabels(), rotation=0, ha="center")
plt.show()
