Skip to content

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 figsize beim Erstellen neuer Figures
  • Anpassen der Größe bestehender Figures
  • Globale Defaults mit rcParams setzen
  • 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

AufgabeBeste MethodeBeispiel
Größe für eine neue Figure setzenplt.figure(figsize=(w, h))plt.figure(figsize=(8, 6))
Bestehende Figure ändernfig.set_size_inches(w, h)fig.set_size_inches(12, 4)
Globale Default-Größe setzenplt.rcParams["figure.figsize"] = ...(12, 6)
Größe in einem Pandas-Plot setzendf.plot(figsize=(w, h))(10, 5)
Zentimeter verwendencm → inch umrechnenw_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

MethodeWann verwendenBeispiel
figure(figsize=...)Beim Erzeugen einer völlig neuen FigureMeistempfohlen
set_size_inches()Eine existierende Figure skalierenGut für automatisch erzeugte Plots
plt.rcParams["figure.figsize"]Globalen Default im Notebook setzenAm häufigsten in EDA
matplotlib.rc("figure", figsize=...)Globale Defaults im Skript setzenAm besten für Production
Umrechnung in ZentimeterAkademische Nutzung, VerlagsvorgabenFür LaTeX-Paper
df.plot(figsize=...)Pandas-WorkflowBequem für schnelle EDA

⚠️ Troubleshooting: Wenn figsize nicht funktioniert (häufige Probleme)

1. Jupyter Notebook ignoriert figsize

Lösung:

%matplotlib inline

2. 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'] = False

5. 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:

PyGWalker for Data visualization (opens in a new tab)

Verwende es in Jupyter:

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

Oder probiere es online aus:

Kaggle NotebookGoogle ColabGitHub ⭐
https://www.kaggle.com/asmdef/pygwalker-test (opens in a new tab)https://colab.research.google.com/drive/171QUQeq-uTLgSj1u-P9DQig7Md1kpXQ2 (opens in a new tab)https://github.com/Kanaries/pygwalker (opens in a new tab)

Häufig gestellte Fragen

  1. Wie setze ich die Figure-Größe in Matplotlib?
    Verwende figure(figsize=(width, height)).

  2. Wie skaliere ich eine bestehende Figure?
    Verwende fig.set_size_inches(w, h).

  3. Kann ich die Figure-Größe in Pandas-Plots ändern?
    Ja, über figsize=(w, h).