Skip to content
Anleitungen
Matplotlib
So setzen Sie den Y-Achsenbereich in Matplotlib

Meisterhaftes Matplotlib: Der Y-Achsenbereich im Detail festlegen

Haben Sie Schwierigkeiten, die Grenzen der Y-Achse in Matplotlib festzulegen? Sind Sie frustriert über den automatischen Y-Achsenbereich und wünschen sich eine Möglichkeit, ihn nach Ihren Bedürfnissen festzulegen? Wenn ja, dann sind Sie hier genau richtig! Dies umfassende Handbuch zum "Setzen des Y-Achsenbereichs in Matplotlib" wird Ihnen die volle Kontrolle über die Y-Achse Ihrer Grafik geben.

Bevor wir eintauchen, sollten wir die Bedeutung des Festlegens des Y-Achsenbereichs in Matplotlib verstehen. Es geht nicht nur um die visuelle Attraktivität - das korrekte Festlegen des Y-Achsenbereichs ist entscheidend für die Integrität Ihrer Datenrepräsentation. Eine schlecht skalierte Y-Achse kann Datenentwicklungen verzerren und Betrachter in die Irre führen. Deshalb verbessert das Wissen, wie man manuell den Y-Achsenbereich festlegt, nicht nur die Qualität Ihrer Diagramme, sondern verbessert auch die Klarheit und Genauigkeit Ihrer Datenpräsentation.

Matplotlib entschlüsseln: Der Y-Achsenbereich

Beginnen wir damit, die Rolle der Y-Achse in Matplotlib zu klären. In den meisten 2D-Diagrammen repräsentiert die Y-Achse die abhängige Variable - die Variable, die sich in Abhängigkeit von der auf der X-Achse aufgetragenen unabhängigen Variable ändert. Der Y-Achsenbereich definiert daher die untere und obere Grenze dieser abhängigen Variable auf dem Diagramm.

Der einfachste Weg, den Y-Achsenbereich festzulegen, besteht darin, die Funktion ylim() aus dem pyplot-Modul von Matplotlib zu verwenden. Diese Funktion ermöglicht es Ihnen, die untere und obere Grenze der Y-Achse als Argumente anzugeben. Hier ist ein einfaches Beispiel:

import matplotlib.pyplot as plt
 
plt.plot([0, 1, 2, 3, 4], [0, 1, 4, 9, 16])
plt.ylim(0, 20)
plt.show()

In diesem Beispiel haben wir eine einfache quadratische Funktion geplottet und den Y-Achsenbereich mit plt.ylim(0, 20) auf 0 bis 20 festgelegt.

Matplotlib Y-Achsenbereich: Mit Achsenobjekten mehr Kontrolle

Während plt.ylim() für einfache Diagramme großartig ist, benötigen Sie für komplexere Diagramme möglicherweise eine feinere Kontrolle über den Y-Achsenbereich. Hier glänzt die objektorientierte API von Matplotlib.

Anstatt mit dem pyplot-Modul zu arbeiten, können Sie ein Achsenobjekt direkt erstellen und damit arbeiten. Jedes Achsenobjekt verfügt über eine Vielzahl von Methoden, die Sie zur Anpassung Ihres Diagramms verwenden können, einschließlich Methoden zum Festlegen des Y-Achsenbereichs: set_ylim() und set_ybound().

Hier ist ein Beispiel, wie der Y-Achsenbereich mit einem Achsenobjekt festgelegt wird:

fig, ax = plt.subplots()
 
ax.plot([0, 1, 2, 3, 4], [0, 1, 4, 9, 16])
ax.set_ylim(0, 20)
plt.show()

In diesem Beispiel erstellen wir zunächst eine Abbildung und ein Achsenobjekt mit plt.subplots(). Anschließend plotten wir die quadratische Funktion auf dem Achsenobjekt mit ax.plot(). Schließlich setzen wir den Y-Achsenbereich mit ax.set_ylim(0, 20).

Dynamischer Y-Achsenbereich: Anpassen der Y-Achsenlimits während der Laufzeit

Manchmal möchten Sie den Y-Achsenbereich basierend auf den Daten oder anderen Kriterien anpassen. Dafür bietet Matplotlib Funktionen, mit denen Sie den aktuellen Y-Achsenbereich abrufen und nach Bedarf ändern können. Die Hauptfunktionen hier sind get_ylim(), set_ylim(), get_ybound() und set_ybound().

Hier ist ein Beispiel, wie der Y-Achsenbereich dynamisch festgelegt wird:

fig, ax = plt.subplots()
 
ax.plot([0, 1, 2, 3, 4], [0, 1, 4, 9, 16])
ymin, ymax = ax.get_ylim()
ax.set_ylim(ymin, ymax*1.1)
plt.show()

In diesem Beispiel rufen wir zunächst den aktuellen Y-Achsenbereich mit ax.get_ylim() ab. Anschließend setzen wir einen neuen Y-Achsenbereich, der das aktuelle Maximum um 10% erweitert, mit ax.set_ylim(ymin, ymax*1.1).

Dies sind die Hauptmethoden, um den Y-Achsenbereich in Matplotlib festzulegen. Die Vielseitigkeit von Matplotlib ermöglicht jedoch zahlreiche weitere Ansätze, die wir in den folgenden Abschnitten näher betrachten werden.

Wagen Sie mehr: Über die Grundlagen des Y-Achsenbereichs hinaus

Matplotlib bietet auch erweiterte Funktionen zum Festlegen des Y-Achsenbereichs. Dies kann besonders nützlich sein, wenn Sie Multi-Panel-Figuren erstellen, bei denen Sie den gleichen Y-Achsenbereich auf mehreren Unterdarstellungen anwenden möchten, oder wenn Sie den Y-Achsenbereich anhand der Daten dynamisch anpassen möchten.

Festlegen desselben Y-Achsenbereichs für mehrere Unterdarstellungen

Wenn Sie eine Multi-Panel-Figur mit mehreren Unterdarstellungen erstellen, möchten Sie möglicherweise den gleichen Y-Achsenbereich für alle Unterdarstellungen verwenden, um Konsistenz zu gewährleisten. Das können Sie einfach tun, indem Sie alle Achsenobjekte durchlaufen und den Y-Achsenbereich für jedes einzelne festlegen. Hier ist, wie es funktioniert:

fig, axs = plt.subplots(2, 2)
for ax in axs.flat:
    ax.set_ylim(0, 20)
plt.show()

In diesem Beispiel erstellen wir zuerst ein 2x2-Raster von Unterdarstellungen mit plt.subplots(2, 2). Anschließend durchlaufen wir alle Achsenobjekte im resultierenden Array und setzen den Y-Achsenbereich für jedes einzelne mit ax.set_ylim(0, 20).

Dynamische Anpassung des Y-Achsenbereichs basierend auf Daten

Eine weitere fortgeschrittene Technik besteht darin, den Y-Achsenbereich basierend auf den Daten selbst anzupassen. Möglicherweise möchten Sie zum Beispiel den Y-Achsenbereich so festlegen, dass er vom Minimum bis zum Maximum im Datensatz reicht. Hier ist ein Beispiel, wie man das macht:

data = [0, 1, 4, 9, 16]
fig, ax = plt.subplots()
ax.plot([0, 1, 2, 3, 4], data)
ax.set_ylim(min(data), max(data))
plt.show()

In diesem Beispiel definieren wir zunächst eine Liste von Datenpunkten. Anschließend erstellen wir eine Abbildung und ein Achsenobjekt, plotten die Daten auf dem Achsenobjekt und setzen den Y-Achsenbereich so, dass er vom Minimum bis zum Maximum im Datensatz reicht.

Alternative zu Matplotlib: Daten mit PyGWalker visualisieren

Neben der Verwendung von Matplotlib zur Visualisierung Ihres Pandas-Datenrahmens gibt es eine alternative, Open-Source-Python-Bibliothek, die Ihnen bei der Erstellung von Datenvisualisierungen behilflich sein kann: PyGWalker (opens in a new tab). Hier ist die deutsche Übersetzung des Markdown-Texts:

PyGWalker für die Datenvisualisierung (opens in a new tab)

Es ist nicht mehr notwendig, komplizierte Verarbeitungen mit Python-Code durchzuführen. Importiere einfach deine Daten und ziehe Variablen per Drag & Drop, um verschiedene Arten von Datenvisualisierungen zu erstellen! Hier ist ein kurzes Demovideo zur Bedienung:


So verwendest du PyGWalker in deinem Jupyter Notebook:

pip install pygwalker
import pygwalker as pyg
gwalker = pyg.walk(df)

Alternativ kannst du es auch in einem Kaggle Notebook/Google Colab ausprobieren:

PyGWalker in Kaggle Notebook ausführen (opens in a new tab)PyGWalker in Google Colab ausführen (opens in a new tab)PyGWalker auf GitHub ⭐️ geben (opens in a new tab)
PyGWalker in Kaggle Notebook ausführen (opens in a new tab)PyGWalker in Google Colab ausführen (opens in a new tab)PyGWalker auf GitHub ⭐️ (opens in a new tab)

PyGWalker wird mit Unterstützung unserer Open-Source-Community entwickelt. Vergiss nicht, dir PyGWalker auf GitHub (opens in a new tab) anzusehen und uns ein ⭐️ zu geben!

Häufig gestellte Fragen

1. Was ist der Unterschied zwischen ylim() und set_ylim() in matplotlib?

ylim() ist eine Funktion aus dem Modul pyplot von matplotlib, die du verwenden kannst, um den Bereich der y-Achse für das aktuelle Diagramm festzulegen. set_ylim() ist hingegen eine Methode der Klasse "Axes" in der objektorientierten API von matplotlib, die du verwenden kannst, um den Bereich der y-Achse für ein bestimmtes Axes-Objekt festzulegen.

2. Wie setze ich den Bereich der y-Achse so ein, dass er sich automatisch an die Daten anpasst?

Du kannst die Methode autoscale() der Klasse "Axes" verwenden, um den Bereich der y-Achse automatisch an die Daten anzupassen. Für noch mehr Kontrolle kannst du die Methode get_ylim() verwenden, um den aktuellen Bereich der y-Achse abzufragen und ihn bei Bedarf anzupassen, bevor du ihn mit set_ylim() festlegst.

3. Kann ich den Bereich der y-Achse für mehrere Subplots auf einmal festlegen?

Ja, du kannst den Bereich der y-Achse für mehrere Subplots auf einmal festlegen, indem du alle Axes-Objekte durchläufst und den Bereich der y-Achse für jedes einzelne festlegst.