1"""
2===============
3Date Demo Rrule
4===============
5
6Show how to use an rrule instance to make a custom date ticker - here
7we put a tick mark on every 5th easter
8
9See https://dateutil.readthedocs.io/en/stable/ for help with rrules
10"""
11import matplotlib.pyplot as plt
12from matplotlib.dates import (YEARLY, DateFormatter,
13                              rrulewrapper, RRuleLocator, drange)
14import numpy as np
15import datetime
16
17# Fixing random state for reproducibility
18np.random.seed(19680801)
19
20
21# tick every 5th easter
22rule = rrulewrapper(YEARLY, byeaster=1, interval=5)
23loc = RRuleLocator(rule)
24formatter = DateFormatter('%m/%d/%y')
25date1 = datetime.date(1952, 1, 1)
26date2 = datetime.date(2004, 4, 12)
27delta = datetime.timedelta(days=100)
28
29dates = drange(date1, date2, delta)
30s = np.random.rand(len(dates))  # make up some random y values
31
32
33fig, ax = plt.subplots()
34plt.plot_date(dates, s)
35ax.xaxis.set_major_locator(loc)
36ax.xaxis.set_major_formatter(formatter)
37ax.xaxis.set_tick_params(rotation=30, labelsize=10)
38
39plt.show()
40