Beschriftungen zwischen Strichen zentrieren

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 in einem Matplotlib-Graphen die Beschriftungen zwischen den Strichen zentriert, indem man Python verwendet. Standardmäßig sind die Strichbeschriftungen relativ zu ihrem zugeordneten Strich ausgerichtet, aber es gibt keine direkte Möglichkeit, die Beschriftungen zwischen den Strichen zu zentrieren. Wir können jedoch eine Beschriftung auf den Zwischenstrichen zwischen den Hauptstrichen platzieren und die Hauptstrichbeschriftungen und Zwischenstriche ausblenden, um dieses Verhalten nachzumachen. Wir werden Finanzdaten zum Aktienpreis von Google verwenden, um diese Technik zu demonstrieren.

Tipps für die VM

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

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

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

Lade die Finanzdaten

Zunächst müssen wir einige Finanzdaten zum Aktienpreis von Google mithilfe der Matplotlib-Funktion cbook.get_sample_data() laden. Wir werden die Daten der letzten 250 Tage verwenden.

import matplotlib.pyplot as plt
import numpy as np
import matplotlib.cbook as cbook

## Lade einige Finanzdaten; Google's Aktienpreis
r = cbook.get_sample_data('goog.npz')['price_data'].view(np.recarray)
r = r[-250:]  ## bekomme die letzten 250 Tage

Erzeuge den Graphen

Als nächstes werden wir den Graphen mit der subplots()-Funktion von Matplotlib erstellen und den angepassten Schließungspreis von Google-Aktien im Laufe der Zeit darstellen.

fig, ax = plt.subplots()
ax.plot(r.date, r.adj_close)

Setze die Haupt- und Nebenmarkierer und -formatter

Um die Beschriftungen zwischen den Strichen zu zentrieren, müssen wir die Haupt- und Nebenmarkierer und -formatter für die x-Achse festlegen. Wir werden die dates.MonthLocator()-Funktion verwenden, um die Haupt- und Nebenmarkierer auf den Monat festzulegen, und die dates.DateFormatter()-Funktion, um die Nebenstrichbeschriftungen in die Monatskürzel zu formatieren.

import matplotlib.dates as dates
import matplotlib.ticker as ticker

ax.xaxis.set_major_locator(dates.MonthLocator())
## 16 ist eine leichte Näherung, da die Monate in der Anzahl der Tage unterschiedlich sind.
ax.xaxis.set_minor_locator(dates.MonthLocator(bymonthday=16))

ax.xaxis.set_major_formatter(ticker.NullFormatter())
ax.xaxis.set_minor_formatter(dates.DateFormatter('%b'))

Entferne die Hauptstrichbeschriftungen und die Zwischenstriche

Um das Verhalten zu simulieren, die Beschriftungen zwischen den Strichen zu zentrieren, müssen wir die Hauptstrichbeschriftungen und die Zwischenstriche entfernen und nur die Nebenstrichbeschriftungen anzeigen. Wir können dies mit der tick_params()-Funktion tun und die Parameter tick1On und tick2On auf False setzen.

## Entferne die Strichlinien
ax.tick_params(axis='x', which='minor', tick1On=False, tick2On=False)

Ausrichten der Nebenstrichbeschriftungen

Schließlich müssen wir die Nebenstrichbeschriftungen in der Mitte zwischen den Hauptstrichen ausrichten. Wir können dies mit der get_xticklabels()-Funktion tun und das minor-Parameter auf True setzen, um die Nebenstrichbeschriftungen zu erhalten. Anschließend können wir durch die Beschriftungen iterieren und die horizontale Ausrichtung auf 'center' setzen.

## Ausrichten der Nebenstrichbeschriftung
for label in ax.get_xticklabels(minor=True):
    label.set_horizontalalignment('center')
imid = len(r) // 2
ax.set_xlabel(str(r.date[imid].item().year))

Zeige den Graphen an

Wir können jetzt den Graphen mit der show()-Funktion anzeigen.

plt.show()

Zusammenfassung

In diesem Lab haben wir gelernt, wie man in einem Matplotlib-Graphen mit Python die Beschriftungen zwischen den Strichen zentriert. Wir haben finanzielle Daten zum Aktienpreis von Google verwendet, um diese Technik zu demonstrieren, und sind die folgenden Schritte gefolgt:

  1. Die finanziellen Daten geladen
  2. Den Graphen erstellt
  3. Die Haupt- und Nebenmarkierer und -formatter festgelegt
  4. Die Hauptstrichbeschriftungen und die Zwischenstriche entfernt
  5. Die Nebenstrichbeschriftungen in der Mitte zwischen den Hauptstrichen ausgerichtet
  6. Den Graphen angezeigt.