Редактирование форматирования даты меток x-axis tick в matplotlib

Я хочу изменить форматирование дат на оси х. На рисунке ниже показано, как они отображаются на моей гистограмме по умолчанию. Я хотел бы удалить повторение "Dec" и "2012" и просто иметь фактические номера чисел по оси x.

Любые предложения относительно того, как я могу это сделать?

enter image description here

Ответ 1

Короче:

import matplotlib.dates as mdates
myFmt = mdates.DateFormatter('%d')
ax.xaxis.set_major_formatter(myFmt)

Много примеров на сайте matplotlib. Я обычно использую здесь

Ответ 2

Ссылка, предоставленная Paul H (http://matplotlib.org/examples/api/date_demo.html), использует следующую строку кода для установки формата:

ax.format_xdata = mdates.DateFormatter('%Y-%m-%d')

Это не работает с моей установкой python 3, которая является исходной установкой, поставляемой с jupyter. Вместо этого вам нужно установить его с помощью строки кода Paul viz-a-viz:

ax.xaxis.set_major_formatter(myFmt)

Как ни странно, этого не хватает на сайте matplotlib, поэтому следите за этой ошибкой. Вот полный код, который я использовал:

## Rotate date labels automatically
import matplotlib.pyplot as plt
from matplotlib.dates import DateFormatter
fig, ax = plt.subplots()
ax.plot(myDates,myValues)
fig.autofmt_xdate()
myFmt = DateFormatter("%d")
ax.xaxis.set_major_formatter(myFmt)
plt.show()