Gráficos de fechas con Matplotlib

PythonPythonBeginner
Practicar Ahora

This tutorial is from open-source community. Access the source code

💡 Este tutorial está traducido por IA desde la versión en inglés. Para ver la versión original, puedes hacer clic aquí

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.