Matplotlib Datumsplot

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 werden wir lernen, wie man mit Matplotlib in Python Datumsdiagramme erstellt. Wir werden das Modul matplotlib.dates verwenden, um Datetime-Objekte in die interne Darstellung von Matplotlib umzuwandeln. Wir werden auch lernen, wie man die Tick-Labels auf der x-Achse formatiert, um Datumswerte in einem lesbaren Format anzuzeigen.

Tipps für die virtuelle Maschine

Nachdem der Start der virtuellen Maschine abgeschlossen ist, klicken Sie in der oberen linken Ecke, um zur Registerkarte Notebook zu wechseln und Jupyter Notebook für die Übung zu nutzen.

Manchmal müssen Sie einige Sekunden warten, bis Jupyter Notebook vollständig geladen ist. Die Validierung von Vorgängen kann aufgrund der Einschränkungen von Jupyter Notebook nicht automatisiert werden.

Wenn Sie bei der Lernphase Probleme haben, können Sie Labby gerne fragen. Geben Sie nach der Sitzung Feedback ab, und wir werden das Problem für Sie prompt beheben.

Importieren der erforderlichen Bibliotheken

Wir beginnen mit dem Importieren der erforderlichen Bibliotheken, einschließlich matplotlib.pyplot, matplotlib.cbook und matplotlib.dates.

import matplotlib.pyplot as plt
import matplotlib.cbook as cbook
import matplotlib.dates as mdates

Daten laden

Als nächstes laden wir die Daten, die wir plotten möchten. Wir verwenden ein numpy-Record-Array aus Yahoo-CSV-Daten mit den Feldern date, open, high, low, close, volume, adj_close aus dem Verzeichnis mpl-data/sample_data. Das Record-Array speichert das Datum als np.datetime64 mit einem Tagesformat ('D') in der date-Spalte.

data = cbook.get_sample_data('goog.npz')['price_data']

Subplots erstellen

Wir werden drei Subplots erstellen, um verschiedene Formatierungsoptionen für die Tick-Labels zu zeigen.

fig, axs = plt.subplots(3, 1, figsize=(6.4, 7), layout='constrained')

Daten plotten

Wir werden die Daten auf allen drei Subplots mit der plot-Funktion plotten.

for ax in axs:
    ax.plot('date', 'adj_close', data=data)
    ax.grid(True)
    ax.set_ylabel(r'Preis [\$]')

Tick-Labels mit Standardformatter formatieren

Wir werden die Tick-Labels auf dem ersten Subplot mit dem Standardformatter formatieren.

ax = axs[0]
ax.set_title('DefaultFormatter', loc='left', y=0.85, x=0.02, fontsize='medium')
ax.xaxis.set_major_locator(mdates.MonthLocator(bymonth=(1, 7)))
ax.xaxis.set_minor_locator(mdates.MonthLocator())

Tick-Labels mit ConciseFormatter formatieren

Wir werden die Tick-Labels auf dem zweiten Subplot mit dem ConciseFormatter formatieren.

ax = axs[1]
ax.set_title('ConciseFormatter', loc='left', y=0.85, x=0.02, fontsize='medium')
ax.xaxis.set_major_formatter(mdates.ConciseDateFormatter(ax.xaxis.get_major_locator()))

Tick-Labels manuell formatieren

Wir werden die Tick-Labels auf dem dritten Subplot manuell formatieren, indem wir DateFormatter verwenden, um die Daten mit den im Dokumentation von datetime.date.strftime beschriebenen Formatzeichenfolgen zu formatieren.

ax = axs[2]
ax.set_title('Manual DateFormatter', loc='left', y=0.85, x=0.02, fontsize='medium')
ax.xaxis.set_major_formatter(mdates.DateFormatter('%Y-%b'))
for label in ax.get_xticklabels(which='major'):
    label.set(rotation=30, horizontalalignment='right')

Plot anzeigen

Schließlich werden wir den Plot mit der show-Funktion anzeigen.

plt.show()

Zusammenfassung

In diesem Lab haben wir gelernt, wie man mit Matplotlib in Python Datumsplots erstellt. Wir haben das Modul matplotlib.dates verwendet, um Datetime-Objekte in Matplotlibs interne Darstellung umzuwandeln. Wir haben auch gelernt, wie man die Tick-Labels auf der x-Achse formatiert, um die Daten in einem lesbaren Format anzuzeigen.