Anpassung von Datumsmarkierungen in Matplotlib mit Wiederholungsregeln

PythonPythonBeginner
Jetzt üben

This tutorial is from open-source community. Access the source code

💡 Dieser Artikel wurde von AI-Assistenten übersetzt. Um die englische Version anzuzeigen, können Sie hier klicken

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.