¿Cómo trazar el tiempo en el eje y en formato '% H:% M' en matplotlib?
Me gustaría trazar los tiempos de una serie datetime64, donde el eje y está formateado como '% H:% M, mostrando solo 00:00, 01:00, 02:00, etc.
así es como se ve el gráfico sin personalizar el formato del eje 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()
Después de leer sobre el tema en SO, intenté lo siguiente pero sin éxito.
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()
¿Alguien podría aconsejarme?