Personalización de marcas de fecha en Matplotlib utilizando reglas de recurrencia

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, aprenderá a usar reglas de recurrencia en Matplotlib para colocar marcas de fecha. El iCalender RFC_ especifica reglas de recurrencia (rrules), que definen secuencias de fechas. Puede usar rrules en Matplotlib para colocar marcas de fecha. Este ejemplo establece marcas de fecha personalizadas en cada quinto domingo de Pascua.

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 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

Primero, debe importar las bibliotecas necesarias, incluyendo Matplotlib, NumPy y datetime.

import datetime
import matplotlib.pyplot as plt
import numpy as np
from matplotlib.dates import (YEARLY, DateFormatter, RRuleLocator, drange,
                              rrulewrapper)

Establecer la semilla aleatoria

Para este ejemplo, se generarán datos aleatorios, por lo que es necesario establecer la semilla aleatoria para garantizar la reproducibilidad.

np.random.seed(19680801)

Establecer la regla de recurrencia

Se van a establecer marcas de fecha personalizadas en cada quinto domingo de Pascua. Para hacer esto, es necesario establecer la regla de recurrencia utilizando la función rrulewrapper.

rule = rrulewrapper(YEARLY, byeaster=1, interval=5)

Establecer el localizador y formateador de marcas

Se utilizará la función RRuleLocator para establecer el localizador de marcas basado en la regla de recurrencia que se estableció en el paso anterior. También se utilizará la función DateFormatter para establecer el formateador de marcas.

loc = RRuleLocator(rule)
formatter = DateFormatter('%m/%d/%y')

Establecer las fechas y generar datos aleatorios

Necesitas establecer las fechas de inicio y fin y el delta, que representa la diferencia entre cada fecha. También necesitas generar datos aleatorios para el ejemplo.

date1 = datetime.date(1952, 1, 1)
date2 = datetime.date(2004, 4, 12)
delta = datetime.timedelta(days=100)

dates = drange(date1, date2, delta)
s = np.random.rand(len(dates))

Graficar los datos y establecer las marcas del eje x

Finalmente, puedes graficar los datos utilizando la función plot, y establecer las marcas del eje x utilizando las funciones de localizador y formateador de marcas que se establecieron anteriormente.

fig, ax = plt.subplots()
plt.plot(dates, s, 'o')
ax.xaxis.set_major_locator(loc)
ax.xaxis.set_major_formatter(formatter)
ax.xaxis.set_tick_params(rotation=30, labelsize=10)
plt.show()

Resumen

En este laboratorio, aprendiste cómo utilizar reglas de recurrencia en Matplotlib para colocar marcas de fecha personalizadas en una gráfica. Primero estableciste la regla de recurrencia utilizando la función rrulewrapper, y luego utilizaste las funciones RRuleLocator y DateFormatter para establecer el localizador y formateador de marcas. Finalmente, graficaste los datos y estableciste las marcas del eje x utilizando las funciones de localizador y formateador de marcas.