[ Web Proxy ]
URL:
Viewing: https://matplotlib.org/gallery/mplot3d/../showcase/../mplot3d/../ticks/date_demo_rrule.html [Back]  [Original]

Placing date ticks using recurrence rules — Matplotlib 3.11.2 documentation
Back to top
Search the docs ...:

Placing date ticks using recurrence rules#

The iCalender RFC specifies recurrence rules (rrules), that define date sequences. You can use rrules in Matplotlib to place date ticks.

This example sets custom date ticks on every 5th easter.

See https://dateutil.readthedocs.io/en/stable/rrule.html for help with rrules.

date demo rrule [date demo rrule]
import datetime

import matplotlib.pyplot as plt
import numpy as np

from matplotlib.dates import YEARLY, DateFormatter, RRuleLocator, drange, rrulewrapper

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

Gallery generated by Sphinx-Gallery


Web Proxy Viewer  |  New URL  |  Original Page