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)