Как построить график времени по оси Y в формате «% H:% M» в matplotlib?

Я хотел бы построить график из серии datetime64, где ось Y отформатирована как '% H:% M, показывая только 00:00, 01:00, 02:00 и т. д.

это то, как выглядит график без настройки форматирования по оси Y.

import numpy as np
import pandas as pd
import matplotlib.pyplot as plt
from matplotlib.dates import DateFormatter
from matplotlib.dates import HourLocator

df = pd.DataFrame(data=dict(a=pd.date_range('1/1/2011',periods=1440000,freq='1min')))
df = df.iloc[np.arange(0,1440*100,1440)+np.random.randint(1,300,100)]

plt.plot(df.index,df['a'].dt.time)
plt.show()

Прочитав тему SO, я попытался сделать следующее, но безуспешно.

ax = plt.subplot()
ax.yaxis.set_major_locator(HourLocator())
ax.yaxis.set_major_formatter(DateFormatter('%H:%M'))
plt.plot(df.index,df['a'].dt.time)
plt.show()

ValueError: DateFormatter found a value of x=0, which is an illegal date.  This usually occurs because you have not informed the axis that it is plotting dates, e.g., with ax.xaxis_date()

Кто-нибудь может мне посоветовать?

Ответы на вопрос(2)

Ваш ответ на вопрос