Matplotlib для манипуляции с датами, чтобы каждые 12 месяцев

Я рисую фигуру, где формат по умолчанию отображается как:

Годовой тик появляется каждые 12 месяцев, но месяцы показывают только каждые 3 месяца

Я хотел бы изменить его так, чтобы месячные тики появлялись каждые 1 месяц, но сохраняли год. Моя текущая попытка:

years = mdates.YearLocator() months = mdates.MonthLocator() monthsFmt = mdates.DateFormatter('%b-%y') dts = s.index.to_pydatetime() fig = plt.figure(); ax = fig.add_subplot(111) ax.plot(dts, s) ax.xaxis.set_major_locator(months) ax.xaxis.set_major_formatter(monthsFmt) 

но это не дает правильного результата:

Не правильно

Как именно мне нужно изменить его так, чтобы он отображался как первый, но с месяцами тиков появляются каждый месяц?

Выяснилось одно решение, которое должно вставлять месяцы в мелкие тики и удерживать годы в качестве основного.

Например

 years = mdates.YearLocator() months = mdates.MonthLocator() monthsFmt = mdates.DateFormatter('%b') yearsFmt = mdates.DateFormatter('\n\n%Y') # add some space for the year label dts = s.index.to_pydatetime() fig = plt.figure(); ax = fig.add_subplot(111) ax.plot(dts, s) ax.xaxis.set_minor_locator(months) ax.xaxis.set_minor_formatter(monthsFmt) plt.setp(ax.xaxis.get_minorticklabels(), rotation=90) ax.xaxis.set_major_locator(years) ax.xaxis.set_major_formatter(yearsFmt) 

Результаты в: введите описание изображения здесь