Matplotlib ist eine leistungsstarke Python-Bibliothek zum Erstellen von Visualisierungen. Bei der Arbeit mit mehreren Subplots ist ein effektiver Abstand für die Lesbarkeit entscheidend. Dieser Artikel untersucht Methoden zur Steuerung des Abstands von Subplots in Matplotlib.
Inhaltsverzeichnis
tight_layout()
Methodesubplots_adjust()
Methodesubplot_tool()
Methodeconstrained_layout=True
Parameter
tight_layout()
Methode
Die Funktion tight_layout()
ist eine einfache und effektive Möglichkeit, den Abstand von Subplots anzupassen. Sie verhindert automatisch überlappende Elemente wie Titel und Beschriftungen. Sie ist ideal, wenn keine präzise Kontrolle über einzelne Abstandsparameter erforderlich ist.
import matplotlib.pyplot as plt
import numpy as np
x = np.linspace(0, 10, 100)
y1 = np.sin(x)
y2 = np.cos(x)
fig, axes = plt.subplots(2, 1)
axes[0].plot(x, y1)
axes[0].set_title('Sinuswelle')
axes[1].plot(x, y2)
axes[1].set_title('Kosinuswelle')
plt.tight_layout()
plt.show()
subplots_adjust()
Methode
Für eine präzise Steuerung verwenden Sie plt.subplots_adjust()
. Diese Funktion ermöglicht die Manipulation von Abstandsparametern: left
, bottom
, right
, top
, wspace
(Breite) und hspace
(Höhe). Dies sind Bruchteile der Figurendimensionen.
import matplotlib.pyplot as plt
import numpy as np
x = np.linspace(0, 10, 100)
y1 = np.sin(x)
y2 = np.cos(x)
fig, axes = plt.subplots(2, 1)
axes[0].plot(x, y1)
axes[0].set_title('Sinuswelle')
axes[1].plot(x, y2)
axes[1].set_title('Kosinuswelle')
plt.subplots_adjust(hspace=0.5)
plt.show()
Hier erhöht hspace=0.5
den vertikalen Abstand. Experimentieren Sie mit Werten, um Ihr gewünschtes Layout zu erreichen. Ähnlich lässt sich wspace
für den horizontalen Abstand anpassen.
subplot_tool()
Methode
plt.subplot_tool()
bietet eine interaktive Oberfläche. Es öffnet ein Fenster, in dem Sie Subplots visuell ziehen und die Größe ändern können. Dies ist besonders hilfreich für komplexe Layouts.
import matplotlib.pyplot as plt
fig, axes = plt.subplots(2, 2)
plt.subplot_tool()
plt.show()
constrained_layout=True
Parameter
Ein moderner und robuster Ansatz ist die Verwendung von constrained_layout=True
innerhalb von plt.subplots()
. Dies passt die Parameter automatisch an, um Überlappungen zu vermeiden und komplexe Layouts effektiver zu handhaben als tight_layout()
.
import matplotlib.pyplot as plt
import numpy as np
x = np.linspace(0, 10, 100)
y1 = np.sin(x)
y2 = np.cos(x)
fig, axes = plt.subplots(2, 1, constrained_layout=True)
axes[0].plot(x, y1)
axes[0].set_title('Sinuswelle')
axes[1].plot(x, y2)
axes[1].set_title('Kosinuswelle')
plt.show()
Dies vereinfacht den Code und bietet eine zuverlässige Lösung, insbesondere für komplexe Abbildungen. Wählen Sie die Methode, die am besten zu Ihren Bedürfnissen passt: tight_layout()
oder constrained_layout=True
für einfache Anpassungen; subplots_adjust()
für feinkörnige Steuerung; und subplot_tool()
für interaktive Anpassungen.