Figure-Größen in Matplotlib meistern: Der vollständige Guide
Updated on
Die Kontrolle der Figure-Größe ist einer der wichtigsten Schritte, um saubere, gut lesbare und publikationsreife Visualisierungen in Matplotlib zu erstellen. Egal ob du schnelle explorative Plots erzeugst oder ausgefeilte Grafiken für Berichte vorbereitest: Wenn du weißt, wie du Figure-Größen korrekt setzt und anpasst, vermeidest du verzerrte Charts, unlesbare Beschriftungen und inkonsistente Layouts.
Dieser Guide deckt alle gängigen und praktischen Methoden ab, um Figure-Größen in Matplotlib zu steuern, darunter:
- Verwendung von
figsizebeim Erstellen neuer Figures - Anpassen der Größe bestehender Figures
- Globale Defaults mit
rcParamssetzen - Figure-Größe in Zentimetern festlegen
- Größe in Pandas-Plots ändern
- Globale Größe zurücksetzen und dynamisch anpassen
- Ein Troubleshooting-Guide
- Eine Vergleichstabelle, die alle Methoden zusammenfasst
⭐ TL;DR — Schnellreferenz
| Aufgabe | Beste Methode | Beispiel |
|---|---|---|
| Größe für eine neue Figure setzen | plt.figure(figsize=(w, h)) | plt.figure(figsize=(8, 6)) |
| Bestehende Figure ändern | fig.set_size_inches(w, h) | fig.set_size_inches(12, 4) |
| Globale Default-Größe setzen | plt.rcParams["figure.figsize"] = ... | (12, 6) |
| Größe in einem Pandas-Plot setzen | df.plot(figsize=(w, h)) | (10, 5) |
| Zentimeter verwenden | cm → inch umrechnen | w_cm / 2.54 |
Figure-Größen in Matplotlib verstehen
Matplotlib misst Figure-Größen in Zoll (inches), mit einem Tupel der Form (Breite, Höhe).
Die direkteste Methode, eine Figure mit fixer Größe zu erstellen, ist:
from matplotlib.pyplot import figure
# Create a new figure (width=8 inches, height=6 inches)
figure(figsize=(8, 6))Damit stellst du sicher, dass dein Chart genau die von dir angegebene Größe verwendet – unabhängig von Datensatz oder Plot-Typ.
Figure-Größe anpassen, nachdem die Figure existiert
Manchmal wird eine Figure automatisch erzeugt – zum Beispiel über plt.plot() oder einen Pandas-Plot. Du kannst sie trotzdem nachträglich skalieren:
import matplotlib.pyplot as plt
# Get the current figure
fig = plt.gcf()
# Change its size to 18.5 x 10.5 inches
fig.set_size_inches(18.5, 10.5)
# Save the resized figure
fig.savefig("figure.png", dpi=100)set_size_inches() ist die zuverlässigste Methode, um Figures nachträglich zu skalieren.
Globale Default-Figure-Größe mit rcParams setzen
Wenn alle deine Plots dieselbe Größe haben sollen (praktisch in Notebooks und Skripten), kannst du einen globalen Default konfigurieren:
import matplotlib.pyplot as plt
# Make all future figures 20 x 3 inches
plt.rcParams["figure.figsize"] = (20, 3)Das beeinflusst alle nachfolgenden Plots, bis du es wieder überschreibst.
Figure-Größe in Zentimetern setzen
Wenn du metrische Maße brauchst (z. B. für wissenschaftliche Arbeiten), rechne Zentimeter → Zoll um:
width_cm = 20
height_cm = 10
# Convert cm to inches
width_in = width_cm / 2.54
height_in = height_cm / 2.54
# Use the converted size
figure(figsize=(width_in, height_in))Das funktioniert identisch zur Variante mit Zoll.
Globale Defaults zurücksetzen oder dynamisch ändern
Um zu den ursprünglichen Matplotlib-Einstellungen zurückzukehren:
plt.rcParams["figure.figsize"] = plt.rcParamsDefault["figure.figsize"]Das ist hilfreich, wenn du in einem Notebook sowohl kleine, schnelle Plots als auch größere Publikationsgrafiken mischst.
Figure-Größe mit Pandas steuern
Pandas integriert sich direkt mit Matplotlib und akzeptiert ebenfalls figsize:
df['some_column'].plot(figsize=(10, 5))Für Subplots:
fig, ax = plt.subplots(figsize=(10, 5))
df['some_column'].plot(ax=ax)Diese Methode ist besonders praktisch in Data-Analysis-Notebooks.
Matplotlib-Standardgröße für alle Plots ändern
Verwende dies, wenn alle Plots automatisch eine einheitliche Größe haben sollen:
import matplotlib
matplotlib.rc("figure", figsize=(10, 5))Das ist ähnlich wie das direkte Ändern von rcParams und funktioniert sowohl in Skripten als auch in Notebooks.
🔍 Vergleich aller Methoden
| Methode | Wann verwenden | Beispiel |
|---|---|---|
figure(figsize=...) | Beim Erzeugen einer völlig neuen Figure | Meistempfohlen |
set_size_inches() | Eine existierende Figure skalieren | Gut für automatisch erzeugte Plots |
plt.rcParams["figure.figsize"] | Globalen Default im Notebook setzen | Am häufigsten in EDA |
matplotlib.rc("figure", figsize=...) | Globale Defaults im Skript setzen | Am besten für Production |
| Umrechnung in Zentimeter | Akademische Nutzung, Verlagsvorgaben | Für LaTeX-Paper |
df.plot(figsize=...) | Pandas-Workflow | Bequem für schnelle EDA |
⚠️ Troubleshooting: Wenn figsize nicht funktioniert (häufige Probleme)
1. Jupyter Notebook ignoriert figsize
Lösung:
%matplotlib inline2. tight_layout schneidet Labels ab
Verwende:
plt.tight_layout()3. Beim Speichern ändert sich die Figure-Größe
Setze immer die DPI explizit:
plt.savefig("output.png", dpi=150)4. Schriftarten oder Labels skalieren unerwartet
Autoscaling deaktivieren:
plt.rcParams['figure.autolayout'] = False5. Subplots überlappen
Größe erhöhen:
fig, ax = plt.subplots(figsize=(12, 8))Diese Troubleshooting-Abschnitte sind im SEO-Bereich zu Matplotlib-Themen stark nachgefragt und lösen häufige Frustpunkte von Nutzer:innen.
Alternative zu Matplotlib: Daten mit PyGWalker visualisieren
Neben Matplotlib kannst du deinen pandas-DataFrame auch visuell mit PyGWalker erkunden, einem Open-Source-Tool für Drag-and-Drop-Datenvisualisierung:
Verwende es in Jupyter:
pip install pygwalker
import pygwalker as pyg
gwalker = pyg.walk(df)Oder probiere es online aus:
Häufig gestellte Fragen
-
Wie setze ich die Figure-Größe in Matplotlib?
Verwendefigure(figsize=(width, height)). -
Wie skaliere ich eine bestehende Figure?
Verwendefig.set_size_inches(w, h). -
Kann ich die Figure-Größe in Pandas-Plots ändern?
Ja, überfigsize=(w, h).
