python - plotting - Formateo de xlabels datetime en matplotlib(método pandas df.plot())
plot histogram dataframe python (2)
No puedo encontrar la manera de cambiar el formato de estas etiquetas x. Idealmente, me gustaría llamar a strftime(''%Y-%m-%d'')
sobre ellos. Intenté cosas como set_major_formatter
pero no set_major_formatter
éxito.
import pandas as pd
import numpy as np
date_range = pd.date_range(''2014-01-01'', ''2015-01-01'', freq=''MS'')
df = pd.DataFrame({''foo'': np.random.randint(0, 10, len(date_range))}, index=date_range)
ax = df.plot(kind=''bar'')
Los objetos en el DF date_range
son objetos Timestamp
. Llame a Timestamp.strftime
en cada objeto:
date_range = pd.date_range(''2014-01-01'', ''2015-01-01'', freq=''MS'')
date_range = date_range.map(lambda t: t.strftime(''%Y-%m-%d''))
print date_range
array([2014-01-01, 2014-02-01, 2014-03-01, 2014-04-01, 2014-05-01,
2014-06-01, 2014-07-01, 2014-08-01, 2014-09-01, 2014-10-01,
2014-11-01, 2014-12-01, 2015-01-01], dtype=object)
Esto permite opciones de formato más generales frente a truncar la cadena de ticklabel.
Simplemente acceda a las etiquetas y cámbielas:
xtl=[item.get_text()[:10] for item in ax.get_xticklabels()]
_=ax.set_xticklabels(xtl)