Einführung
In diesem Lab lernst du, wie du Wiederholungsregeln in Matplotlib verwendest, um Datumsmarkierungen zu platzieren. Die iCalender RFC_ definiert Wiederholungsregeln (rrules), die Datumsfolgen definieren. Du kannst rrules in Matplotlib verwenden, um Datumsmarkierungen zu platzieren. In diesem Beispiel werden benutzerdefinierte Datumsmarkierungen für jeden fünften Ostersonntag gesetzt.
Tipps für die VM
Nachdem der VM-Start abgeschlossen ist, klicke in der oberen linken Ecke, um zur Registerkarte Notebook zu wechseln und Jupyter Notebook für die Übung zu nutzen.
Manchmal musst du einige Sekunden warten, bis Jupyter Notebook vollständig geladen ist. Die Validierung von Vorgängen kann aufgrund von Einschränkungen in Jupyter Notebook nicht automatisiert werden.
Wenn du während des Lernens Probleme hast, kannst du Labby gerne fragen. Gib nach der Sitzung Feedback, und wir werden das Problem für dich prompt beheben.
Importiere die erforderlichen Bibliotheken
Zunächst musst du die erforderlichen Bibliotheken importieren, einschließlich Matplotlib, NumPy und datetime.
import datetime
import matplotlib.pyplot as plt
import numpy as np
from matplotlib.dates import (YEARLY, DateFormatter, RRuleLocator, drange,
rrulewrapper)
Setze den Zufallszahlengenerator
Für dieses Beispiel wirst du zufällige Daten generieren, daher musst du den Zufallszahlengenerator setzen, um die Reproduzierbarkeit zu gewährleisten.
np.random.seed(19680801)
Setze die Wiederholungsregel
Du wirst benutzerdefinierte Datumsmarkierungen für jeden fünften Ostersonntag setzen. Dazu musst du die Wiederholungsregel mit der Funktion rrulewrapper setzen.
rule = rrulewrapper(YEARLY, byeaster=1, interval=5)
Setze den Markierungsgeber und den Formatierer
Du wirst die Funktion RRuleLocator verwenden, um den Markierungsgeber basierend auf der im vorherigen Schritt gesetzten Wiederholungsregel zu setzen. Du wirst auch die Funktion DateFormatter verwenden, um den Formatierer für die Markierungen zu setzen.
loc = RRuleLocator(rule)
formatter = DateFormatter('%m/%d/%y')
Setze die Daten und generiere zufällige Daten
Du musst das Start- und Enddatum sowie den Zeitintervall (Delta) setzen, der die Differenz zwischen jedem Datum darstellt. Du musst auch für das Beispiel zufällige Daten generieren.
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))
Zeichne die Daten und setze die Markierungen auf der x-Achse
Schließlich kannst du die Daten mit der plot-Funktion zeichnen und die Markierungen auf der x-Achse mit den zuvor gesetzten Funktionen für den Markierungsgeber und den Formatierer festlegen.
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()
Zusammenfassung
In diesem Lab haben Sie gelernt, wie Sie Wiederholungsregeln in Matplotlib verwenden, um benutzerdefinierte Datumsmarkierungen auf einem Diagramm zu platzieren. Zuerst haben Sie die Wiederholungsregel mit der Funktion rrulewrapper gesetzt und anschließend die Funktionen RRuleLocator und DateFormatter verwendet, um den Markierungsgeber und den Formatierer zu setzen. Schließlich haben Sie die Daten geplottet und die Markierungen auf der x-Achse mit den Funktionen für den Markierungsgeber und den Formatierer festgelegt.