python pandas datetime matplotlib python-datetime

python - Cambiar el formato de un eje de fecha y hora en matplotlib



pandas datetime (2)

Puedes probar algo como esto:

import matplotlib.dates as mdates import matplotlib.pyplot as plt df = pd.DataFrame({''values'':np.random.randint(0,1000,36)},index=pd.date_range(start=''2014-01-01'',end=''2016-12-31'',freq=''M'')) fig,ax1 = plt.subplots() plt.plot(df.index,df.values) monthyearFmt = mdates.DateFormatter(''%Y %B'') ax1.xaxis.set_major_formatter(monthyearFmt) _ = plt.xticks(rotation=90)

Tengo una serie cuyo índice es datetime que deseo trazar. Quiero trazar los valores de la serie en el eje y y el índice de la serie en el eje x. La Series tiene el siguiente aspecto:

2014-01-01 7 2014-02-01 8 2014-03-01 9 2014-04-01 8 ...

plt.plot(series.index, series.values) un gráfico usando plt.plot(series.index, series.values) . Pero el gráfico se ve así:

El problema es que me gustaría tener solo año y mes. Sin embargo, el gráfico contiene horas, minutos y segundos. ¿Cómo puedo eliminarlos para obtener el formato deseado?


# sample data import numpy as np import pandas as pd N = 30 drange = pd.date_range("2014-01", periods=N, freq="MS") values = {''values'':np.random.randint(1,20,size=N)} df = pd.DataFrame(values, index=drange) # use formatters to specify major and minor ticks import matplotlib.pyplot as plt import matplotlib.dates as mdates fig, ax = plt.subplots() ax.plot(df.index, df.values) ax.set_xticks(df.index) ax.xaxis.set_major_formatter(mdates.DateFormatter("%Y-%m")) ax.xaxis.set_minor_formatter(mdates.DateFormatter("%Y-%m")) _=plt.xticks(rotation=90)