Placer des graduations de date à l'aide des règles de récurrence #

La RFC iCalender spécifie les règles de récurrence (rrules) qui définissent les séquences de dates. Vous pouvez utiliser des règles dans Matplotlib pour placer des ticks de date.

Cet exemple définit des graduations de date personnalisées tous les 5 Pâques.

Voir https://dateutil.readthedocs.io/en/stable/rrule.html pour obtenir de l'aide sur les règles.

date démo règle
import matplotlib.pyplot as plt
from matplotlib.dates import (YEARLY, DateFormatter,
                              rrulewrapper, RRuleLocator, drange)
import numpy as np
import datetime

# Fixing random state for reproducibility
np.random.seed(19680801)


# tick every 5th easter
rule = rrulewrapper(YEARLY, byeaster=1, interval=5)
loc = RRuleLocator(rule)
formatter = DateFormatter('%m/%d/%y')
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))  # make up some random y values


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

Galerie générée par Sphinx-Gallery