Introducción
En este laboratorio, aprenderemos a crear gráficos de fechas utilizando Matplotlib en Python. Utilizaremos el módulo matplotlib.dates para convertir objetos datetime a la representación interna de Matplotlib. También aprenderemos a formatear las etiquetas de los ticks en el eje x para mostrar fechas en un formato legible.
Consejos sobre la VM
Una vez finalizada la inicialización de la VM, haga clic en la esquina superior izquierda para cambiar a la pestaña Cuaderno y acceder a Jupyter Notebook para practicar.
A veces, es posible que tenga que esperar unos segundos a que Jupyter Notebook termine de cargarse. La validación de las operaciones no se puede automatizar debido a las limitaciones de Jupyter Notebook.
Si tiene problemas durante el aprendizaje, no dude en preguntar a Labby. Deje sus comentarios después de la sesión y lo resolveremos rápidamente para usted.
Importar las bibliotecas necesarias
Comenzaremos importando las bibliotecas necesarias, incluyendo matplotlib.pyplot, matplotlib.cbook y matplotlib.dates.
import matplotlib.pyplot as plt
import matplotlib.cbook as cbook
import matplotlib.dates as mdates
Cargar datos
A continuación, cargaremos los datos que queremos representar. Utilizaremos una matriz de registros de numpy a partir de datos csv de Yahoo con los campos fecha, apertura, alta, baja, cierre, volumen, cierre ajustado del directorio mpl-data/sample_data. La matriz de registros almacena la fecha como un np.datetime64 con una unidad de día ('D') en la columna de fecha.
data = cbook.get_sample_data('goog.npz')['price_data']
Crear subgráficos
Crearemos tres subgráficos para mostrar diferentes opciones de formato para las etiquetas de los ticks.
fig, axs = plt.subplots(3, 1, figsize=(6.4, 7), layout='constrained')
Graficar datos
Graficaremos los datos en los tres subgráficos utilizando la función plot.
for ax in axs:
ax.plot('date', 'adj_close', data=data)
ax.grid(True)
ax.set_ylabel(r'Precio [\$]')
Formatear las etiquetas de los ticks con el formateador predeterminado
Formatearemos las etiquetas de los ticks en el primer subgráfico utilizando el formateador predeterminado.
ax = axs[0]
ax.set_title('DefaultFormatter', loc='left', y=0.85, x=0.02, fontsize='medium')
ax.xaxis.set_major_locator(mdates.MonthLocator(bymonth=(1, 7)))
ax.xaxis.set_minor_locator(mdates.MonthLocator())
Formatear las etiquetas de los ticks con el formateador conciso
Formatearemos las etiquetas de los ticks en el segundo subgráfico utilizando el formateador conciso.
ax = axs[1]
ax.set_title('ConciseFormatter', loc='left', y=0.85, x=0.02, fontsize='medium')
ax.xaxis.set_major_formatter(mdates.ConciseDateFormatter(ax.xaxis.get_major_locator()))
Formatear manualmente las etiquetas de los ticks
Formatearemos las etiquetas de los ticks en el tercer subgráfico manualmente utilizando DateFormatter para formatear las fechas con las cadenas de formato documentadas en datetime.date.strftime.
ax = axs[2]
ax.set_title('Manual DateFormatter', loc='left', y=0.85, x=0.02, fontsize='medium')
ax.xaxis.set_major_formatter(mdates.DateFormatter('%Y-%b'))
for label in ax.get_xticklabels(which='major'):
label.set(rotation=30, horizontalalignment='right')
Mostrar el gráfico
Finalmente, mostraremos el gráfico utilizando la función show.
plt.show()
Resumen
En este laboratorio, aprendimos cómo crear gráficos de fechas utilizando Matplotlib en Python. Utilizamos el módulo matplotlib.dates para convertir objetos datetime a la representación interna de Matplotlib. También aprendimos cómo formatear las etiquetas de los ticks en el eje x para mostrar las fechas en un formato legible.