mirror of https://github.com/pyodide/pyodide.git
45 lines
1.4 KiB
Python
45 lines
1.4 KiB
Python
# non-native
|
|
# setup: import matplotlib ; import numpy as np ; matplotlib.use('module://matplotlib_pyodide.html5_canvas_backend') ; from matplotlib import pyplot as plt ; from matplotlib.dates import (YEARLY, DateFormatter, rrulewrapper, RRuleLocator, drange) ; import datetime # noqa: E501
|
|
# run: canvas_text_rotated()
|
|
|
|
# pythran export canvas_text_rotated()
|
|
import matplotlib
|
|
import numpy as np
|
|
|
|
matplotlib.use("module://matplotlib_pyodide.html5_canvas_backend")
|
|
import datetime # noqa: E402
|
|
|
|
from matplotlib import pyplot as plt # noqa: E402
|
|
from matplotlib.dates import ( # noqa: E402
|
|
YEARLY,
|
|
DateFormatter, # noqa: E402
|
|
RRuleLocator, # noqa: E402
|
|
drange,
|
|
rrulewrapper,
|
|
)
|
|
|
|
|
|
def canvas_text_rotated():
|
|
# tick every 5th easter
|
|
np.random.seed(42)
|
|
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_date(dates, s)
|
|
ax.xaxis.set_major_locator(loc)
|
|
ax.xaxis.set_major_formatter(formatter)
|
|
labels = ax.get_xticklabels()
|
|
plt.setp(labels, rotation=30, fontsize=10)
|
|
|
|
plt.show()
|
|
plt.close("all")
|
|
plt.clf()
|