Matplotlib-Funktionen

Matplotlib ist die am weitesten verbreitete Bibliothek zur Datenvisualisierung in Python und unterstützt die Erstellung statischer, animierter und interaktiver Diagramme.

Dieses Dokument organisiert umfassend die Funktionen und Methoden aller öffentlichen Schnittstellen in Matplotlib und ermöglicht ein schnelles Nachschlagen der entsprechenden Funktionen und deren Verwendung.


Zwei wesentliche Programmierschnittstellen

Matplotlib bietet zwei Verwendungsansätze, die für unterschiedliche Szenarien geeignet sind.

Merkmal Axes-Schnittstelle (explizit/objektorientiert) pyplot-Schnittstelle (implizit/funktional)
Nutzung Erstellen Sie zuerst Figure- und Axes-Objekte und rufen Sie dann Objektmethoden auf. Direkter Aufruf von Funktionen des pyplot-Moduls, die implizit auf die aktuelle Figure wirken.
Geeignete Szenarien Komplexe Diagramme, mehrere Subplots, feingranulare Steuerung erforderlich. Schnelles Plotten, interaktive Erkundung, einfache Diagramme.
Codebeispiel fig, ax = plt.subplots(); ax.plot(x, y) plt.plot(x, y); plt.title("Title")
Empfehlungsstufe Empfohlen(klarer, besser kontrollierbar) Geeignet für einfache Szenarien und schnelles Prototyping.

Die Axes-Schnittstelle ist der offiziell empfohlene Programmieransatz. Die Codelogik ist klarer und weniger fehleranfällig beim Umgang mit mehreren Subplots und komplexen Diagrammen. Zur schnellen Referenz sind im Folgenden sowohl pyplot-Funktionen als auch die entsprechenden Axes-Methoden aufgeführt.


pyplot-Modul – Vollständige Funktionsliste

pyplot ist die oberste Schnittstelle von Matplotlib und bietet ein MATLAB-ähnliches Plot-Erlebnis. Im Folgenden sind alle Funktionen nach offizieller Kategorie aufgeführt.

1. Figure- und Achsenverwaltung

Funktionen zum Erstellen und Verwalten von Figure (Leinwand) und Axes (Koordinatensystem/Subplot).

FunktionBeschreibung
figure()Eine neue Figure erstellen oder eine vorhandene Figure aktivieren.
subplots()EmpfohlenErstellt eine Figure und eine Reihe von Axes-Subplots.
subplot()Fügt einen einzelnen Subplot zur aktuellen Figure hinzu (über Zeilen- und Spaltenindex).
subplot2grid()Erstelle ein Subplot an einer angegebenen Position in einem Rasterlayout.
subplot_mosaic()Erstelle ein komplexes, nicht gleichmäßiges Layout unter Verwendung von Label-Strings.
axes()Füge eine Axes zur aktuellen Figure hinzu.
gca()Rufe das aktuelle Axes-Objekt ab.
gcf()Rufe das aktuelle Figure-Objekt ab.
sca()Setze die aktuelle Axes.
cla()Leere die aktuelle Axes.
clf()Leere die aktuelle Figure.
close()Schließe das Figure-Fenster.
delaxes()Entferne die angegebene Axes aus der Figure.
fignum_exists()Prüfe, ob eine Figure mit der angegebenen Nummer existiert.
get_figlabels()Gib die Liste der Labels aller Figures zurück.
get_fignums()Gib die Liste der Nummern aller Figuren zurück.
twinx()Erzeuge eine Zwillings-y-Achse, die die x-Achse teilt.
twiny()Erzeuge eine Zwillings-x-Achse, die die y-Achse teilt.

2. Grundlegendes Plotten

Die am häufigsten verwendeten Funktionen zum Zeichnen von Diagrammtypen.

FunktionBeschreibung
plot()Zeichne ein Liniendiagramm (am häufigsten).
scatter()Zeichne ein Streudiagramm, das die Zuordnung von Größe/Farbe/Transparenz unterstützt.
bar()Zeichne ein vertikales Balkendiagramm.
barh()Zeichne ein horizontales Balkendiagramm.
bar_label()Füge Wertbeschriftungen zu den Balken eines Balkendiagramms hinzu.
grouped_bar()Zeichne ein gruppiertes Balkendiagramm.
pie()Zeichne ein Kreisdiagramm.
pie_label()Füge Beschriftungen zu einem Kreisdiagramm hinzu.
stem()Erstelle einen Stem-Plot (Streichholzdiagramm).
eventplot()Erstelle einen Ereignisplot (mehrere horizontale Linien, die Ereignispositionen markieren).
step()Erstelle ein Stufendiagramm.
fill()Zeichne gefüllte Polygone.
fill_between()Fülle die Fläche zwischen zwei horizontalen Kurven.
fill_betweenx()Fülle die Fläche zwischen zwei vertikalen Kurven.
stackplot()Erstelle ein gestapeltes Flächendiagramm.
broken_barh()Erstelle ein horizontales unterbrochenes Balkendiagramm (Gantt-Diagramm-Stil).
vlines()Zeichne eine vertikale Referenzlinie.
hlines()Zeichne eine horizontale Referenzlinie.
errorbar()Erstelle ein Liniendiagramm mit Fehlerbalken.
loglog()Log-Log-Liniendiagramm.
semilogx()Liniendiagramm mit logarithmischer x-Achse.
semilogy()Liniendiagramm mit logarithmischer y-Achse.
polar()Darstellung in Polarkoordinaten.

3. Spannlinien (Spans)

Horizontale und vertikale Referenzlinien und schattierte Bereiche zeichnen.

FunktionBeschreibung
axhline()Eine horizontale Linie hinzufügen, die die Achsen überspannt.
axhspan()Ein horizontales schattiertes Band hinzufügen, das die Achsen überspannt.
axvline()Eine vertikale Linie hinzufügen, die die Achsen überspannt.
axvspan()Ein vertikales schattiertes Band hinzufügen, das die Achsen überspannt.
axline()Eine unendliche Linie hinzufügen, die durch zwei Punkte verläuft.

4. Spektralanalyse

Funktionen für Signalverarbeitung und spektrale Visualisierung.

FunktionBeschreibung
acorr()Ein Autokorrelationsdiagramm zeichnen.
xcorr()Kreuzkorrelation darstellen
angle_spectrum()Winkelspektrum darstellen
magnitude_spectrum()Betragsspektrum darstellen
phase_spectrum()Phasenspektrum darstellen
psd()Leistungsdichtespektrum darstellen
csd()Kreuzspektraldichte darstellen
cohere()Kohärenz darstellen
specgram()Spektrogramm darstellen (Zeit-Frequenz-Diagramm)

5. Statistische Diagramme

Funktionen zum Plotten statistischer Verteilungen.

FunktionBeschreibung
boxplot()Boxplot zeichnen
violinplot()Violinplot zeichnen
ecdf()Empirische kumulative Verteilungsfunktion (ECDF) zeichnen

6. Binning und Histogramme

FunktionBeschreibung
hist()1D-Histogramm zeichnen
hist2d()2D-Histogramm zeichnen
hexbin()Hexagonales Binning-Diagramm zeichnen
stairs()Stufenhistogramm zeichnen (neue Version, ersetzt den Step-Modus von hist)

7. Konturlinien

FunktionBeschreibung
contour()Konturlinien zeichnen
contourf()Gefüllte Konturen zeichnen
clabel()Beschriftungen zu Konturen hinzufügen

8. 2D-Arrays und Bilder

Visualisierungsfunktionen zur Anzeige von 2D-Daten, Matrizen und Bildern.

FunktionBeschreibung
imshow()Ein Bild oder 2D-Array anzeigen (Heatmap)
matshow()Eine Matrix als Bild in einer neuen Abbildung anzeigen
pcolor()Pseudocolor-Mesh zeichnen (erzeugt PolyCollection)
pcolormesh()Pseudocolor-Mesh zeichnen (erzeugt QuadMesh, bessere Leistung)
spy()Plotten Sie das Muster der Nichtnull-Elemente einer dünnbesetzten Matrix
figimage()Platzieren Sie ein Bild auf der Figure-Ebene (nicht Axes)

9. Unstrukturierte Dreiecksgitter

FunktionBeschreibung
triplot()Plotten Sie ein unstrukturiertes Dreiecksgitter
tripcolor()Plotten Sie ein Pseudofarben-Diagramm auf einem Dreiecksgitter
tricontour()Plotten Sie Konturlinien auf einem Dreiecksgitter
tricontourf()Plotten Sie gefüllte Konturen auf einem Dreiecksgitter

10. Text und Annotationen

FunktionBeschreibung
text()Text an angegebenen Koordinaten in Axes hinzufügen
figtext()Fügen Sie Text an der angegebenen Position in Figure hinzu
annotate()Annotation mit Pfeil hinzufügen
arrow()Pfeil hinzufügen
legend()Fügen Sie eine Legende in Axes hinzu
figlegend()Fügen Sie eine Legende auf Figure-Ebene hinzu
table()Fügen Sie eine Tabelle in Axes hinzu

11. Vektorfelder

FunktionBeschreibung
quiver()Plotten Sie ein Vektorfeld (Quiver-Plot)
quiverkey()Fügen Sie dem Vektorfeld eine Legendenskala hinzu
barbs()Barb-Plot zeichnen (Darstellung von Windgeschwindigkeit und -richtung in der Meteorologie)
streamplot()Stromlinien zeichnen

12. Achsenkonfiguration

Funktionen zum Festlegen von Achsengrenzen, Ticks, Beschriftungen und Skalen.

FunktionBeschreibung
title()Achsen-Titel festlegen
suptitle()Suptitel der Figure festlegen
xlabel()x-Achsenbeschriftung festlegen
ylabel()y-Achsenbeschriftung festlegen
xlim()x-Achsengrenzen abrufen oder festlegen
ylim()y-Achsengrenzen abrufen oder festlegen
xscale()x-Achsen-Skala festlegen (linear/log/symlog/logit...)
yscale()y-Achsen-Skala festlegen (linear/log/symlog/logit...)
xticks()Tick-Positionen und -Beschriftungen der x-Achse abrufen oder festlegen
yticks()Tick-Positionen und -Beschriftungen der y-Achse abrufen oder festlegen
tick_params()Aussehen der Ticks anpassen (Richtung, Farbe, Größe, Beschriftungsrotation usw.)
ticklabel_format()Format der Tick-Beschriftung festlegen (wissenschaftliche Notation usw.)
locator_params()Parameter des Tick-Locators steuern
minorticks_on()Minor-Ticks anzeigen
minorticks_off()Minor-Ticks ausblenden
rgrids()Radiale Gitterlinien eines Polardiagramms abrufen oder festlegen
thetagrids()Winklige Gitterlinien eines Polardiagramms abrufen oder festlegen
grid()Gitterlinien ein- oder ausschalten
axis()Komfortfunktion zum Abrufen oder Festlegen bestimmter Achseneigenschaften
box()Rahmenlinien der Achsen ein- oder ausschalten
autoscale()Achsen automatisch skalieren, um sie an die Daten anzupassen

13. Layout

Funktionen zum Steuern der Anordnung und Abstände von Subplots.

FunktionBeschreibung
subplots_adjust()Subplot-Abstände manuell anpassen (left/right/top/bottom/wspace/hspace)
tight_layout()Subplot-Parameter für ein kompaktes Layout automatisch anpassen
margins()Datenränder der Achsen festlegen oder abrufen
subplot_tool()Interaktives Werkzeugfenster zum Anpassen von Subplots öffnen

14. Colormap

Funktionen im Zusammenhang mit Colormaps und Farbskalen.

FunktionBeschreibung
colorbar()Farbbalken hinzufügen
clim()Datenbereich der Colormap festlegen
get_cmap()Das Colormap-Objekt mit dem angegebenen Namen abrufen
set_cmap()Standard-Colormap festlegen
gci()Das aktuelle Colormap-fähige Bildobjekt abrufen
sci()Legt das aktuelle farbzuzuordnende Bildobjekt fest
imread()Bild aus Datei in Array einlesen
imsave()Array als Bilddatei speichern
colormapsColormap-Registrierungsobjekt
color_sequencesFarbsequenz-Registrierungsobjekt

15. Konfiguration

Funktionen zur Verwaltung globaler Konfigurationsparameter von Matplotlib.

FunktionBeschreibung
rc()rc-Parameter festlegen (können stapelweise festgelegt werden)
rc_context()Kontextmanager zum vorübergehenden Festlegen von rc-Parametern
rcdefaults()Alle rc-Parameter auf Standardwerte zurücksetzen

16. Ausgabe und Interaktion

Funktionen zum Steuern der Plot-Anzeige, des Speicherns und der Interaktionsmodi.

FunktionBeschreibung
show()Alle geöffneten Abbildungen anzeigen
savefig()Aktuelle Figure in Datei speichern
draw()Erneutes Rendern der aktuellen Figure erzwingen
draw_if_interactive()Figure rendern, wenn im interaktiven Modus
pause()Für die angegebene Anzahl an Sekunden pausieren (während der Pause Ereignisse verarbeiten)
ion()Interaktiven Modus einschalten
ioff()Interaktiven Modus ausschalten
isinteractive()Zurückgeben, ob der interaktive Modus derzeit aktiv ist
install_repl_displayhook()REPL-Anzeige-Hook installieren (um Figures automatisch anzuzeigen)
uninstall_repl_displayhook()REPL-Anzeige-Hook deinstallieren
switch_backend()Backend wechseln

17. Andere Hilfsfunktionen

FunktionBeschreibung
connect()Ereignis-Callback-Funktion binden
disconnect()Ereignis-Callback-Funktion entbinden
ginput()Koordinatenpunkte durch Mausklicks abrufen
waitforbuttonpress()Auf Maus- oder Tastendruck warten, Ereignistyp zurückgeben
findobj()Artist-Objekte finden, die den angegebenen Bedingungen entsprechen
get()Ruft den Eigenschaftswert eines Artist-Objekts ab
getp()Ruft die Eigenschaften eines Artist-Objekts ab (Alias von get)
setp()Legt die Eigenschaften eines Artist-Objekts fest
get_current_fig_manager()Ruft den Fenstermanager der aktuellen Figure ab
new_figure_manager()Erstellt einen neuen Figure-Manager für die angegebene Figure
set_loglevel()Matplotlib-Log-Level festlegen
xkcd()Zum xkcd-Stil (handgezeichneter Comic) wechseln

Axes-Objekt – Vollständige Methodenliste

Axes (Axes-Objekt) repräsentiert einen Subplot innerhalb einer Figure und enthält Daten, Ticks, Beschriftungen, Titel usw. Im Folgenden werden alle Methoden vollständig gemäß der offiziellen Klassifizierung aufgeführt.

1. Grundlegende Plot-Methoden

MethodeBeschreibung
Axes.plot()Liniendiagramm
Axes.scatter()Streudiagramm
Axes.bar()Vertikales Balkendiagramm
Axes.barh()Horizontales Balkendiagramm
Axes.bar_label()Wertbeschriftungen auf Balken hinzufügen
Axes.grouped_bar()Gruppiertes Balkendiagramm
Axes.pie()Kreisdiagramm
Axes.pie_label()Beschriftungen des Kreisdiagramms
Axes.stem()Stem-Plot
Axes.eventplot()Ereignisdiagramm
Axes.step()Stufendiagramm
Axes.fill()Polygone füllen
Axes.fill_between()Horizontaler Füllbereich
Axes.fill_betweenx()Vertikaler Füllbereich
Axes.stackplot()Gestapeltes Flächendiagramm
Axes.broken_barh()Horizontales gebrochenes Balkendiagramm
Axes.vlines()Vertikale Referenzlinie
Axes.hlines()Horizontale Referenzlinie
Axes.errorbar()Liniendiagramm mit Fehlerbalken
Axes.loglog()Log-log-Skala
Axes.semilogx()Logarithmische x-Achse
Axes.semilogy()y-Achse logarithmische Skala

2. Span-Line-Methoden

MethodeBeschreibung
Axes.axhline()Horizontale Referenzlinie
Axes.axvline()Vertikale Referenzlinie
Axes.axhspan()Horizontaler schattierter Bereich
Axes.axvspan()Vertikaler schattierter Bereich
Axes.axline()Unendliche Linie durch zwei Punkte

3. Methoden der Spektralanalyse

MethodeBeschreibung
Axes.acorr()Autokorrelationsdiagramm
Axes.xcorr()Kreuzkorrelationsdiagramm
Axes.angle_spectrum()Winkelspektrum
Axes.magnitude_spectrum()Betragsspektrum
Axes.phase_spectrum()Phasenspektrum
Axes.psd()Leistungsspektraldichte
Axes.csd()Kreuzspektraldichte
Axes.cohere()Kohärenz
Axes.specgram()Spektrogramm (Zeit-Frequenz-Diagramm)

4. Statistische Methoden

MethodeBeschreibung
Axes.boxplot()Boxplot
Axes.bxp()Boxplot aus vorberechneten Statistiken zeichnen
Axes.violinplot()Violinendiagramm
Axes.violin()Violinplot aus vorberechneten Statistiken zeichnen
Axes.ecdf()Empirische kumulative Verteilungsfunktion

5. Binning- und Histogramm-Methoden

MethodeBeschreibung
Axes.hist()Histogramm
Axes.hist2d()2D-Histogramm
Axes.hexbin()Hexbin-Diagramm
Axes.stairs()Treppenhistogramm

6. Konturmethoden

MethodeBeschreibung
Axes.contour()Kontur
Axes.contourf()Gefüllte Kontur
Axes.clabel()Konturbeschriftungen

7. 2D-Array-Methoden

MethodeBeschreibung
Axes.imshow()Bild/Heatmap anzeigen
Axes.matshow()Matrixbild
Axes.pcolor()Pseudofarben-Gitter (PolyCollection)
Axes.pcolorfast()Schnelle Pseudofarbdarstellung (mit imshow gezeichnet)
Axes.pcolormesh()Pseudofarben-Gitter (QuadMesh, empfohlen)
Axes.spy()Muster einer dünnbesetzten Matrix

8. Methoden für unstrukturierte Dreiecksgitter

MethodeBeschreibung
Axes.triplot()Dreiecksgitter-Linien
Axes.tripcolor()Dreiecksgitter-Pseudofarben
Axes.tricontour()Dreiecksgitter-Kontur
Axes.tricontourf()Gefüllte Dreiecksgitter-Kontur

9. Text- und Annotationsmethoden

MethodeBeschreibung
Axes.text()Text hinzufügen
Axes.annotate()Annotation mit Pfeil hinzufügen
Axes.table()Tabelle hinzufügen
Axes.arrow()Pfeil hinzufügen
Axes.inset_axes()Eine Inset-Achse innerhalb der Axes erstellen
Axes.indicate_inset()Den Bereich der Inset-Achse auf der übergeordneten Axes markieren
Axes.indicate_inset_zoom()Den gezoomten Bereich der Inset-Achse markieren
Axes.secondary_xaxis()Eine sekundäre x-Achse hinzufügen (dieselben Daten an einer anderen Position anzeigen)
Axes.secondary_yaxis()Eine sekundäre y-Achse hinzufügen

10. Methoden für Vektorfelder

MethodeBeschreibung
Axes.quiver()Vektorfeld (Pfeilplot)
Axes.quiverkey()Skalenbalken für Vektorfeld-Legende
Axes.barbs()Windbarben-Diagramm
Axes.streamplot()Stromlinien-Diagramm

11. Methoden zum Leeren

MethodeBeschreibung
Axes.cla()Gesamten Inhalt in den Axes löschen
Axes.clear()Die Axes leeren (wie cla())

12. Darstellungsmethoden

MethodeBeschreibung
Axes.axis()Sichtbarkeit oder Bereich der Achse festlegen
Axes.set_axis_off()Die Achsen ausblenden
Axes.set_axis_on()Die Achsen anzeigen
Axes.set_frame_on()Den Axes-Rahmen anzeigen
Axes.get_frame_on()Ermitteln, ob der Rahmen sichtbar ist
Axes.set_axisbelow()Festlegen, ob Gitter/Teilstriche unter den Daten liegen
Axes.get_axisbelow()Die Gitter-/Tick-Ebene abrufen
Axes.grid()Gitterlinien festlegen
Axes.get_facecolor()Hintergrundfarbe der Axes ermitteln
Axes.set_facecolor()Hintergrundfarbe der Axes festlegen

13. Eigenschaftszyklus

MethodeBeschreibung
Axes.set_prop_cycle()Den Property-Cycle für Linienfarben/Linienstile usw. festlegen

14. Steuerung von Achsen und Ticks

Achsenzugriff:

MethodeBeschreibung
Axes.xaxis / Axes.yaxisDas Axis-Objekt für die x/y-Achse abrufen (Eigenschaft)
Axes.get_xaxis() / get_yaxis()Das Axis-Objekt für die x/y-Achse abrufen (Eigenschaft)

Achsenbereich und -richtung:

MethodeBeschreibung
Axes.set_xlim() / get_xlim()Setzt/ruft den Bereich der x-Achse ab
Axes.set_ylim() / get_ylim()Bereich der y-Achse festlegen/abrufen
Axes.set_xbound() / get_xbound()Untere und obere Grenzen der x-Achse festlegen/abrufen
Axes.set_ybound() / get_ybound()Untere und obere Grenzen der y-Achse festlegen/abrufen
Axes.invert_xaxis()Richtung der x-Achse umkehren
Axes.invert_yaxis()Richtung der y-Achse umkehren
Axes.xaxis_inverted() / yaxis_inverted()Abfragen, ob die Achse invertiert ist
Axes.set_xinverted() / get_xinverted()Festlegen/Abrufen, ob die x-Achse invertiert ist
Axes.set_yinverted() / get_yinverted()Festlegen/Abrufen, ob die y-Achse invertiert ist
Axes.update_datalim()Die Datenlimits mit neuen Datenpunkten erweitern

Achsenbeschriftungen und Legende:

MethodeBeschreibung
Axes.set_xlabel() / get_xlabel()Festlegen/Abrufen der x-Achsenbeschriftung
Axes.set_ylabel() / get_ylabel()Festlegen/Abrufen der y-Achsenbeschriftung
Axes.label_outer()Tick-Beschriftungen nur an den äußersten Subplots beibehalten
Axes.set_title() / get_title()Axes-Titel setzen/abrufen
Axes.legend()Eine Legende hinzufügen
Axes.get_legend()Das aktuelle Legendenobjekt abrufen
Axes.get_legend_handles_labels()Die Legend-Handles und -Labels abrufen

Achsen-Skalierung:

MethodeBeschreibung
Axes.set_xscale() / get_xscale()x-Achsen-Skalierung setzen/abrufen
Axes.set_yscale() / get_yscale()Setzen/Abrufen der y-Achsen-Skala

Autoskalierung und Ränder:

MethodeBeschreibung
Axes.autoscale()Die Ansicht automatisch skalieren, um die Daten anzupassen
Axes.autoscale_view()Nur die Ansicht automatisch skalieren (ohne die Ränder zu ändern)
Axes.margins()Datenmargins festlegen oder abrufen
Axes.relim()Die Datenlimits anhand der aktuellen Artists neu berechnen
Axes.use_sticky_edges()Sticky Edges verwenden
Axes.set_xmargin() / get_xmargin()Rand der x-Achse setzen/abrufen
Axes.set_ymargin() / get_ymargin()Rand der y-Achse setzen/abrufen
Axes.set_autoscale_on() / get_autoscale_on()Festlegen/Abrufen, ob automatisch skaliert werden soll
Axes.set_autoscalex_on() / get_autoscalex_on()Setzt/ruft ab, ob die x-Achse automatisch skaliert wird
Axes.set_autoscaley_on() / get_autoscaley_on()Setzt/ruft ab, ob die y-Achse automatisch skaliert wird

Seitenverhältnis:

MethodeBeschreibung
Axes.set_aspect() / get_aspect()Setzt/ruft das Seitenverhältnis der Achsen ab ('equal'/'auto'/Zahl)
Axes.set_box_aspect() / get_box_aspect()Setzt/ruft das Box-Seitenverhältnis der Axes ab
Axes.apply_aspect()Wendet die aktuelle Einstellung des Seitenverhältnisses an
Axes.set_adjustable() / get_adjustable()Setzt/ruft die anpassbare Richtung ab ('box'/'datalim')

Ticks und Tick-Beschriftungen:

MethodeBeschreibung
Axes.set_xticks() / get_xticks()Setzt/ruft die Tick-Positionen der x-Achse ab
Axes.set_yticks() / get_yticks()Festlegen/Abrufen der Tick-Positionen der y-Achse
Axes.set_xticklabels() / get_xticklabels()Festlegen/Abrufen der Tick-Beschriftungen der x-Achse
Axes.set_yticklabels() / get_yticklabels()Festlegen/Abrufen der Tick-Beschriftungen der y-Achse
Axes.get_xmajorticklabels()Abrufen der Haupt-Tick-Beschriftungen der x-Achse
Axes.get_xminorticklabels()Abrufen der Neben-Tick-Beschriftungen der x-Achse
Axes.get_ymajorticklabels()Abrufen der Haupt-Tick-Beschriftungen der y-Achse
Axes.get_yminorticklabels()Ruft die Beschriftungen der Nebenteilstriche der y-Achse ab
Axes.get_xgridlines()Ruft die Gitterlinien der x-Achse ab
Axes.get_ygridlines()Ruft die Gitterlinien der y-Achse ab
Axes.get_xticklines()Ruft die Teilstriche der x-Achse ab
Axes.get_yticklines()Ruft die Teilstriche der y-Achse ab
Axes.xaxis_date()Setzt die Teilstriche der x-Achse auf Datumsformat
Axes.yaxis_date()Y-Achsen-Ticks auf Datumsformat setzen
Axes.minorticks_on()Minor-Ticks anzeigen
Axes.minorticks_off()Minor-Ticks ausblenden
Axes.ticklabel_format()Setzt das Format der Tick-Beschriftungen
Axes.tick_params()Parameter für die Tick-Darstellung anpassen
Axes.locator_params()Parameter des Tick-Locators steuern

15. Einheiten

MethodeBeschreibung
Axes.convert_xunits()Konvertiert x-Werte mit dem Einheitenumrechner
Axes.convert_yunits()Konvertiert y-Werte mit dem Einheitenumrechner
Axes.have_units()Prüfen, ob ein Einheitenkonverter registriert ist

16. Artists hinzufügen

MethodeBeschreibung
Axes.add_artist()Fügt ein beliebiges Artist-Objekt hinzu
Axes.add_child_axes()Fügt eine untergeordnete Axes hinzu
Axes.add_collection()Ein Collection-Objekt hinzufügen
Axes.add_container()Ein Container-Objekt hinzufügen
Axes.add_image()Ein AxesImage-Objekt hinzufügen
Axes.add_line()Ein Line2D-Objekt hinzufügen
Axes.add_patch()Ein Patch-Objekt hinzufügen
Axes.add_table()Ein Table-Objekt hinzufügen

17. Zwillingsachsen und gemeinsam genutzte Achsen

MethodeBeschreibung
Axes.twinx()Eine Zwillings-y-Achse erstellen, die die x-Achse teilt
Axes.twiny()Eine zweite x-Achse erstellen, die die y-Achse teilt
Axes.sharex()Teilt die x-Achse mit anderen Axes
Axes.sharey()Teilt die y-Achse mit anderen Axes
Axes.get_shared_x_axes()Grouper-Objekt für gemeinsam genutzte x-Achsen abrufen
Axes.get_shared_y_axes()Grouper-Objekt für gemeinsam genutzte y-Achsen abrufen

18. Axes-Position

MethodeBeschreibung
Axes.get_position() / set_position()Position und Größe der Axes in der Figure abrufen/festlegen
Axes.get_anchor() / set_anchor()Ankerpunkt (feste Position) der Axes abrufen/festlegen
Axes.get_axes_locator() / set_axes_locator()Axes-Locator-Callback-Funktion abrufen/festlegen
Axes.get_subplotspec() / set_subplotspec()SubplotSpec-Objekt abrufen/festlegen
Axes.reset_position()Axes-Position auf ihren ursprünglichen Wert zurücksetzen

19. Asynchron/Events

MethodeBeschreibung
Axes.staleKennzeichnet, ob der Artist neu gezeichnet werden muss (Eigenschaft)
Axes.pchanged()Benachrichtigt über ein Eigenschaftsänderungsereignis
Axes.add_callback()Einen Callback für Eigenschaftsänderungen hinzufügen
Axes.remove_callback()Einen Callback für Eigenschaftsänderungen entfernen

20. Interaktion

MethodeBeschreibung
Axes.can_pan() / can_zoom()Gibt zurück, ob Pan/Zoom aktiviert ist
Axes.set_navigate() / get_navigate()Festlegen/Abrufen, ob die Navigationssymbolleiste aktiv ist
Axes.set_navigate_mode() / get_navigate_mode()Navigationsmodus festlegen/abrufen
Axes.start_pan() / drag_pan() / end_pan()Beginn/Ziehen/Ende der Pan-Operation
Axes.format_coord()Formatiert die in der Symbolleiste angezeigte Koordinatenzeichenfolge
Axes.format_cursor_data()Formatiert den Datenwert am Cursor
Axes.format_xdata() / format_ydata()Formatiert x/y-Datenwerte
Axes.mouseover()Ermittelt, ob sich die Maus über dem Axes-Objekt befindet
Axes.in_axes()Ermittelt, ob ein Punkt innerhalb des Axes-Objekts liegt
Axes.contains() / contains_point()Ermittelt, ob ein Artist einen Punkt enthält
Axes.get_cursor_data()Daten an der Cursorposition abrufen
Axes.get_forward_navigation_events() / set_forward_navigation_events()Weiterleitung von Navigationsereignissen abrufen/festlegen

21. Abfrage untergeordneter Elemente

MethodeBeschreibung
Axes.get_children()Alle untergeordneten Artists abrufen
Axes.get_images()Alle Bildobjekte abrufen
Axes.get_lines()Alle Linienobjekte abrufen
Axes.findobj()Sucht untergeordnete Artists, die die Bedingung erfüllen

22. Zeichnen

MethodeBeschreibung
Axes.draw()Die Axes rendern
Axes.draw_artist()Einen einzelnen Artist zeichnen (Low-Level-Methode)
Axes.redraw_in_frame()Innerhalb des Frames neu zeichnen
Axes.get_window_extent()Ruft die Axes-Grenzen im Anzeigefenster ab
Axes.get_tightbbox()Ruft den eng anliegenden Begrenzungsrahmen der Axes ab
Axes.get_rasterization_zorder() / set_rasterization_zorder()Ruft den zorder-Schwellenwert für die Rasterisierung ab oder legt ihn fest

23. Projektion (Unterklassen sollten überschreiben)

MethodeBeschreibung
Axes.nameProjektionsname (z. B. 'rectilinear', 'polar')
Axes.get_xaxis_transform() / get_yaxis_transform()Ruft die x/y-Achsen-Transformation ab
Axes.get_data_ratio()Ruft das Daten-Seitenverhältnis ab
Axes.get_xaxis_text1_transform()Transformation der unteren Beschriftung der x-Achse
Axes.get_xaxis_text2_transform()Transformation der oberen Beschriftung der x-Achse
Axes.get_yaxis_text1_transform()Transformation der linken Beschriftung der y-Achse
Axes.get_yaxis_text2_transform()Transformation der rechten Beschriftung der y-Achse

24. Weitere Methoden

MethodeBeschreibung
Axes.set()Eigenschaften im Batch festlegen
Axes.zorderzorder abrufen/festlegen (Eigenschaft)
Axes.get_figure()Übergeordnetes Figure-Objekt abrufen
Axes.figureÜbergeordnetes Figure-Objekt (Eigenschaft)
Axes.remove()Entfernt sich selbst aus dem Figure-Objekt
Axes.has_data()Prüft, ob Daten vorhanden sind
Axes.get_default_bbox_extra_artists()Artists abrufen, die zusätzlich in die Berechnung der Bounding Box einbezogen werden sollen
Axes.get_transformed_clip_path_and_affine()Ruft den transformierten Clipping-Pfad ab
Axes.viewLimAnsichtsgrenzen (Eigenschaft)
Axes.dataLimDatengrenzen (Eigenschaft)
Axes.spinesSpine-Wörterbuch (Eigenschaft)

Figure-Objekt – Vollständige Methodenliste

Figure ist der Container der obersten Ebene des gesamten Diagramms und verwaltet alle Axes, Artists und das Layout.

1. Hinzufügen von Axes und SubFigure

MethodeBeschreibung
Figure.subplots()EmpfohlenEin Axes-Subplot-Raster erstellen
Figure.add_subplot()Ein einzelnes Subplot an einer angegebenen Zeilen-/Spaltenposition hinzufügen
Figure.add_axes()Ein Axes an einer angegebenen Position und Größe hinzufügen
Figure.subplot_mosaic()Komplexe Subplot-Anordnungen mit labelbasiertem Layout erstellen
Figure.add_gridspec()Ein GridSpec-Layout-Objekt hinzufügen
Figure.subfigures()Eine verschachtelte SubFigure erstellen
Figure.add_subfigure()Eine einzelne SubFigure hinzufügen
Figure.axesAxes-Liste (Eigenschaft)
Figure.get_axes()Alle Axes abrufen
Figure.delaxes()Die angegebenen Axes entfernen

2. Speichern

MethodeBeschreibung
Figure.savefig()Die Figure in eine Datei speichern

3. Annotationen auf Figure-Ebene

MethodeBeschreibung
Figure.suptitle() / get_suptitle()Figure-Suptitle setzen/abrufen
Figure.supxlabel() / get_supxlabel()x-Beschriftung auf Figure-Ebene setzen/abrufen
Figure.supylabel() / get_supylabel()y-Beschriftung auf Figure-Ebene setzen/abrufen
Figure.colorbar()Eine Farbskala hinzufügen
Figure.legend()Eine globale Legende hinzufügen
Figure.text()Text auf Figure-Ebene hinzufügen
Figure.align_labels()Achsenbeschriftungen aller Subplots ausrichten
Figure.align_xlabels()x-Achsenbeschriftungen aller Subplots ausrichten
Figure.align_ylabels()y-Achsenbeschriftungen aller Subplots ausrichten
Figure.align_titles()Titel aller Subplots ausrichten
Figure.autofmt_xdate()Datums-Tick-Beschriftungen automatisch drehen

4. Figure-Geometrie

MethodeBeschreibung
Figure.set_size_inches() / get_size_inches()Figure-Größe festlegen/abrufen (in Zoll)
Figure.set_figheight() / get_figheight()Figure-Höhe festlegen/abrufen
Figure.set_figwidth() / get_figwidth()Figure-Breite festlegen/abrufen
Figure.dpiDPI-Auflösung (Eigenschaft)
Figure.set_dpi() / get_dpi()DPI festlegen/abrufen

5. Subplot-Layout

MethodeBeschreibung
Figure.subplots_adjust()Subplot-Abstände manuell anpassen
Figure.set_layout_engine()Layout-Engine festlegen ('constrained'/'compressed'/'none')
Figure.get_layout_engine()Aktuelle Layout-Engine abrufen
Figure.tight_layout()Automatisches Tight-Layout (veraltet)
Figure.set_tight_layout() / get_tight_layout()tight_layout setzen/abrufen (veraltet)
Figure.set_constrained_layout() / get_constrained_layout()constrained_layout setzen/abrufen (veraltet)
Figure.set_constrained_layout_pads() / get_constrained_layout_pads()Ränder von constrained_layout setzen/abrufen (veraltet)

6. Interaktion

MethodeBeschreibung
Figure.ginput()Koordinatenpunkte durch Mausklicks abrufen
Figure.waitforbuttonpress()Auf Maus- oder Tastendruck warten
Figure.pick()Ein Pick-Ereignis auslösen
Figure.add_axobserver()Einen Axes-Beobachter hinzufügen

7. Änderung des Erscheinungsbilds

MethodeBeschreibung
Figure.set_frameon() / get_frameon()Setzt/ruft ab, ob der Figure-Hintergrund sichtbar ist
Figure.set_linewidth() / get_linewidth()Linienbreite des Figure-Rahmens setzen/abrufen
Figure.set_facecolor() / get_facecolor()Setzt/ruft die Hintergrundfarbe der Figure ab
Figure.set_edgecolor() / get_edgecolor()Farbe des Figure-Rahmens setzen/abrufen

8. Hinzufügen und Abrufen von Artists

MethodeBeschreibung
Figure.add_artist()Einen beliebigen Artist hinzufügen
Figure.figimage()Ein Bild auf Figure-Ebene platzieren
Figure.get_children()Alle untergeordneten Artists abrufen

9. Zustandsverwaltung

MethodeBeschreibung
Figure.clear()Die Figure leeren
Figure.gca()Die aktuellen Axes abrufen
Figure.sca()Aktuelle Axes festlegen
Figure.show()Die Abbildung anzeigen
Figure.draw()Die Abbildung rendern
Figure.draw_artist()Einen einzelnen Artist zeichnen
Figure.draw_without_rendering()Layout ohne Rendern berechnen (um Größeninformationen zu erhalten)
Figure.set_canvas()Canvas festlegen
Figure.get_tightbbox()Ruft die enge Begrenzungsbox der Figure ab
Figure.get_window_extent()Figure-Grenzen im Anzeigefenster abrufen

10. Hilfsfunktionen

FunktionBeschreibung
figaspect()Figure-Größe basierend auf dem angegebenen Seitenverhältnis berechnen

SubFigure-Objekt – Methodenliste

SubFigure ist eine logische untergeordnete Figure, die in eine übergeordnete Figure eingebettet ist, mit Methoden, die denen von Figure ähneln.

Axes hinzufügen

MethodeBeschreibung
SubFigure.subplots()Ein Subplot-Raster erstellen
SubFigure.add_subplot()Ein einzelnes Subplot hinzufügen
SubFigure.add_axes()Ein Axes an einer angegebenen Position hinzufügen
SubFigure.subplot_mosaic()Label-basierte Layout-Subplots
SubFigure.add_gridspec()GridSpec hinzufügen
SubFigure.subfigures()Eine tiefer verschachtelte SubFigure erstellen
SubFigure.add_subfigure()Eine einzelne SubFigure hinzufügen
SubFigure.delaxes()Axes entfernen

Annotationen

MethodeBeschreibung
SubFigure.suptitle() / get_suptitle()SubFigure suptitle
SubFigure.supxlabel() / get_supxlabel()x-Beschriftung der SubFigure
SubFigure.supylabel() / get_supylabel()y-Beschriftung der SubFigure
SubFigure.colorbar()Farbskala
SubFigure.legend()Legende
SubFigure.text()Text
SubFigure.align_labels()Beschriftungen ausrichten
SubFigure.align_xlabels() / align_ylabels()x/y-Beschriftungen ausrichten
SubFigure.align_titles()Titel ausrichten

Artist und Darstellung

MethodeBeschreibung
SubFigure.add_artist()Einen Artist hinzufügen
SubFigure.get_children()Untergeordnete Artists abrufen
SubFigure.set_frameon() / get_frameon()Rahmen setzen/abrufen
SubFigure.set_linewidth() / get_linewidth()Linienbreite setzen/abrufen
SubFigure.set_facecolor() / get_facecolor()Hintergrundfarbe setzen/abrufen
SubFigure.set_edgecolor() / get_edgecolor()Rahmenfarbe setzen/abrufen
SubFigure.set_dpi() / get_dpi()DPI festlegen/abrufen

Kurzreferenz zur Stilkonfiguration

Integrierte Stilvorlagen

Durchplt.style.use('name')Wechseln der Stile.

StilnameBeschreibung
defaultStandardstil, klar und neutral
ggplotAhmt den R-ggplot2-Stil nach, grauer Hintergrund mit weißem Gitter
seaborn-v0_8Moderner Stil ähnlich der seaborn-Bibliothek
seaborn-v0_8-brightHelle seaborn-Palette
seaborn-v0_8-colorblindFarbenblindfreundliche seaborn-Palette
seaborn-v0_8-darkdunkler seaborn-Stil
seaborn-v0_8-dark-paletteseaborn deep-Palette
seaborn-v0_8-darkgridseaborn darkgrid-Stil
seaborn-v0_8-deepdunkle seaborn-Palette
seaborn-v0_8-mutedseaborn muted-Palette
seaborn-v0_8-notebookseaborn Notebook-Stil
seaborn-v0_8-paperseaborn Papierstil
seaborn-v0_8-pastelseaborn pastel-Palette
seaborn-v0_8-posterseaborn Poster-Stil
seaborn-v0_8-talkseaborn Talk-Stil
seaborn-v0_8-ticksseaborn Ticks-Stil
seaborn-v0_8-whiteseaborn white-Stil
seaborn-v0_8-whitegridseaborn whitegrid-Stil
fivethirtyeightAhmt den Datenjournalismus-Stil von FiveThirtyEight nach
dark_backgroundDunkler Hintergrund, geeignet für Präsentationen und die Verwendung bei Nacht
bmhStil von Bayesian Methods for Hackers
grayscaleGraustufen-Stil, geeignet für Schwarz-Weiß-Druck
classicMatplotlib v1.x classic-Stil
fastVereinfachter Stil, schnelleres Rendering
Solarize_Light2Helles Solarized-Theme
tableau-colorblind10Farbenblindenfreundliche Tableau-Palette

Häufige rcParams-Konfigurationen

ParametersBeschreibungBeispielwerte
figure.figsizeStandardgröße der Abbildung (Zoll)[8, 6]
figure.dpiStandardauflösung100
figure.facecolorHintergrundfarbe der Abbildung'white'
figure.edgecolorRandfarbe der Abbildung'white'
font.sizeGlobale Schriftgröße12
font.familySchriftfamilie'sans-serif'
font.sans-serifSans-serif-Schriftartenliste['DejaVu Sans', ...]
axes.titlesizeTitel-Schriftgröße'large'
axes.labelsizeSchriftgröße der Achsenbeschriftung'medium'
axes.gridOb das Gitter standardmäßig angezeigt wirdFalse
axes.facecolorHintergrundfarbe der Achsen'white'
axes.spines.topOb die obere Begrenzungslinie angezeigt wirdTrue
axes.spines.rightOb die rechte Begrenzungslinie angezeigt wirdTrue
lines.linewidthStandard-Linienbreite1.5
lines.markersizeStandardgröße der Markierung6
lines.linestyleStandard-Linienstil'-'
legend.locStandardposition der Legende'best'
legend.fontsizeSchriftgröße der Legende'medium'
xtick.labelsizeGröße der x-Achsen-Tick-Beschriftung'medium'
ytick.labelsizeGröße der y-Achsen-Tick-Beschriftung'medium'
savefig.dpiStandardauflösung beim Speichern von Bildern'figure'
savefig.bboxBounding-Box-Modus beim SpeichernKeine
image.cmapStandard-Colormap'viridis'
image.interpolationBildinterpolationsmethode'antialiased'

Kurzreferenz für Colormaps

KategorieColormap-NameAnwendbare Szenarien
Wahrnehmungsgleichmäßig (sequenziell)viridis, plasma, inferno, magma, cividisKontinuierliche Daten, farbenblind-freundlich, als erste Wahl empfohlen
Sequenziell (einfarbiger Farbverlauf)Greys, Purples, Blues, Greens, Oranges, Reds, YlOrBr, YlOrRd, OrRd, PuRd, RdPu, BuPu, GnBu, PuBu, YlGnBu, PuBuGn, BuGn, YlGnKontinuierliche Daten von niedrig bis hoch, ein einzelner Farbton
DivergierendPiYG, PRGn, BrBG, PuOr, RdGy, RdBu, RdYlBu, RdYlGn, Spectral, coolwarm, bwr, seismicBidirektionale Daten mit einem zentralen Referenzpunkt
Zyklischtwilight, twilight_shifted, hsvPeriodische Daten (z. B. Winkel, Zeit)
QualitativPastel1, Pastel2, Paired, Accent, Dark2, Set1, Set2, Set3, tab10, tab20, tab20b, tab20cDiskrete kategoriale Daten
Verschiedenesflag, prism, ocean, gist_earth, terrain, gist_stern, gnuplot, gnuplot2, CMRmap, cubehelix, brg, gist_rainbow, rainbow, jet, turbo, nipy_spectral, gist_ncarSpezialzwecke oder visuelle Effekte

'viridis'Seit Matplotlib 2.0 ist es die Standard-Colormap; es bietet hervorragende perzeptuelle Gleichmäßigkeit und farbenblind-freundliche Eigenschaften und ist die erste Wahl für die meisten Szenarien. Vermeiden Sie die Verwendung von'jet'und'rainbow', die Probleme mit Wahrnehmungsverzerrungen aufweisen.


Häufige Beispiele

Beispiel 1: Einfaches Liniendiagramm und Streudiagramm

Verwenden Sie die explizite Axes-Schnittstelle, um Diagramme mit mehreren Kurven und Annotationen zu erstellen.

Beispiel

import matplotlib.pyplot as plt
import numpy as np

# Daten generieren: 100 gleichmäßig verteilte Punkte zwischen 0 und 10
x = np.linspace(0, 10, 100)
y1 = np.sin(x)   # Sinusfunktion
y2 = np.cos(x)   # Kosinusfunktion

# Figure und Axes erstellen (explizite Schnittstelle, empfohlen)
fig, ax = plt.subplots(figsize=(8, 4), layout='constrained')

# Zwei Linien plotten, Farben, Linienstile und Beschriftungen festlegen
ax.plot(x, y1, label='sin(x)', color='blue', linewidth=2)
ax.plot(x, y2, label='cos(x)', color='red', linestyle='--', linewidth=2)

# Hervorgehobene Scatterpunkte an den Spitzenpositionen hinzufügen
peak_idx_sin = np.argmax(y1)
peak_idx_cos = np.argmax(y2)
ax.scatter(x[peak_idx_sin], y1[peak_idx_sin],
           color='blue', s=100, zorder=5)
ax.scatter(x[peak_idx_cos], y2[peak_idx_cos],
           color='red', s=100, zorder=5)

# Dekorieren: Titel, Achsenbeschriftungen, Legende, Gitter
ax.set_title('Sinus- und Kosinusfunktionen', fontsize=14)
ax.set_xlabel('x (radians)')
ax.set_ylabel('Amplitude')
ax.legend(loc='upper right')
ax.grid(True, alpha=0.3)

plt.show()
print("Beispiel: Plot erfolgreich angezeigt")

Beispiel 2: Layout mit mehreren Subplots (2x2)

Demonstrieren Sie, wie verschiedene Arten von Subplots in einer Figure erstellt werden.

Beispiel

import matplotlib.pyplot as plt
import numpy as np

x = np.linspace(0, 2 * np.pi, 100)

# Erstelle ein 2x2-Subplot (objektorientierte Schnittstelle)
fig, axes = plt.subplots(2, 2, figsize=(10, 8), layout='constrained')
fig.suptitle('Mehrteiliges EXAMPLE Demo', fontsize=16)

# Subplot (0,0): Linienplot
axes[0, 0].plot(x, np.sin(x), color='tab:blue', linewidth=2)
axes[0, 0].set_title('Liniendiagramm')
axes[0, 0].set_ylabel('sin(x)')

# Subplot (0,1): Streudiagramm
np.random.seed(42)
colors = np.random.rand(50)
sizes = np.random.rand(50) * 200
axes[0, 1].scatter(np.random.rand(50), np.random.rand(50),
                   c=colors, s=sizes, alpha=0.6, cmap='viridis')
axes[0, 1].set_title('Streudiagramm')

# Subplot (1,0): Balkendiagramm (mit Wertelabels)
categories = ['A', 'B', 'C', 'D', 'E']
values = [23, 45, 56, 78, 32]
bars = axes[1, 0].bar(categories, values,
                       color='tab:green', edgecolor='white')
axes[1, 0].bar_label(bars)  # Werte auf den Balken anzeigen
axes[1, 0].set_title('Balkendiagramm')

# Subplot (1,1): Histogramm
data = np.random.randn(1000)
axes[1, 1].hist(data, bins=30, color='tab:orange',
                edgecolor='white', alpha=0.8)
axes[1, 1].axvline(x=0, color='red', linestyle='--', linewidth=2)
axes[1, 1].set_title('Histogram')

plt.show()

Beispiel 3: Vergleich von Heatmap und Konturplot

Demonstriere die Visualisierung von 2D-Daten in derselben Figure mit imshow und contourf.

Beispiel

import matplotlib.pyplot as plt
import numpy as np

# 2D-Gitterdaten erstellen
x = np.linspace(-3, 3, 100)
y = np.linspace(-3, 3, 100)
X, Y = np.meshgrid(x, y)
Z = np.sin(X) * np.cos(Y)  # 2D-Funktionswerte

fig, (ax1, ax2) = plt.subplots(1, 2, figsize=(12, 5),
                                layout='constrained')

# Linkes Panel: Heatmap (imshow)
im = ax1.imshow(Z, extent=[-3, 3, -3, 3], origin='lower',
                cmap='viridis', aspect='auto')
ax1.set_title('Heatmap (imshow)', fontsize=14)
ax1.set_xlabel('X')
ax1.set_ylabel('Y')
fig.colorbar(im, ax=ax1, label='Amplitude', shrink=0.8)

# Rechtes Panel: gefüllte Kontur (contourf)
contour = ax2.contourf(X, Y, Z, levels=15, cmap='RdYlBu')
# Konturgrenzen überlagern
ax2.contour(X, Y, Z, levels=15, colors='black', linewidths=0.5)
ax2.set_title('Filled Contour (contourf)', fontsize=14)
ax2.set_xlabel('X')
ax2.set_ylabel('Y')
fig.colorbar(contour, ax=ax2, label='Amplitude', shrink=0.8)

plt.show()

Beispiel 4: Stilwechsel und Speichern von Abbildungen

Verwende Stylesheets und rcParams, um das Erscheinungsbild anzupassen, und speichere hochwertige Abbildungen.

Beispiel

import matplotlib.pyplot as plt
import numpy as np

# Verwende den ggplot-Stil und stimme dann einige Parameter fein ab
plt.style.use('ggplot')
plt.rcParams['figure.figsize'] = [8, 6]
plt.rcParams['font.size'] = 12

x = np.linspace(0, 10, 50)
y1 = np.exp(-x/3) * np.sin(2 * x)  # Gedämpfte Sinuswelle
y2 = np.exp(-x/3) * np.cos(2 * x)  # Gedämpfte Kosinuswelle

fig, ax = plt.subplots()
ax.plot(x, y1, 'o-', label='Gedämpfter Sinus', markersize=6)
ax.plot(x, y2, 's--', label='Gedämpfter Kosinus', markersize=6)

# Das erste Maximum annotieren
peak_idx = np.argmax(y1)
ax.annotate(f'Maximum: {y1[peak_idx]:.2f}',
            xy=(x[peak_idx], y1[peak_idx]),
            xytext=(x[peak_idx] + 1.5, y1[peak_idx] + 0.15),
            arrowprops=dict(arrowstyle='->', color='gray'),
            fontsize=10)

ax.set_title('Gedämpfte Schwingung', fontsize=16)
ax.set_xlabel('Zeit (s)')
ax.set_ylabel('Amplitude')
ax.legend()
ax.grid(True)

# Speichere als hochwertige PNG mit 300 DPI
fig.savefig('example_damped_oscillation.png',
            dpi=300, bbox_inches='tight')
print("Beispiel: Abbildung erfolgreich gespeichert")

plt.show()

Beispiel 5: Komplexes Mosaik-Layout

Verwende subplot_mosaic, um ungleichmäßige Subplot-Anordnungen zu erstellen.

Beispiel

import matplotlib.pyplot as plt
import numpy as np

# Definiere das Layout mit einem Mosaik-String:
# 'A' erstreckt sich über die gesamte obere Zeile, 'B' und 'C' befinden sich unten links bzw. mittig links, 'D' belegt den unteren rechten Bereich vertikal
layout = """
A A A
B C D
"""


fig, axes = plt.subplot_mosaic(layout, figsize=(10, 6),
                                layout='constrained')
fig.suptitle('Komplexes Mosaik-Layout (BEISPIEL)', fontsize=16)

# Panel A: Liniendiagramm (überspannt den oberen Bereich)
x = np.linspace(0, 10, 100)
axes['A'].plot(x, np.sin(x), label='sin(x)')
axes['A'].plot(x, np.cos(x), label='cos(x)')
axes['A'].set_title('Panel A: Liniendiagramm')
axes['A'].legend()

# Panel B: Kreisdiagramm
sizes = [30, 25, 20, 15, 10]
labels = ['Python', 'Java', 'C++', 'Rust', 'Go']
axes['B'].pie(sizes, labels=labels, autopct='%1.1f%%',
              startangle=90)
axes['B'].set_title('Panel B: Kreisdiagramm')

# Panel C: Balkendiagramm
axes['C'].bar(['X', 'Y', 'Z'], [10, 25, 15],
              color=['#ff6b6b', '#4ecdc4', '#45b7d1'])
axes['C'].set_title('Panel C: Balkendiagramm')

# Panel D: Wärmekarte
matrix = np.random.rand(5, 5)
im = axes['D'].imshow(matrix, cmap='Blues', aspect='auto')
axes['D'].set_title('Panel D: Heatmap')
fig.colorbar(im, ax=axes['D'])

plt.show()

Beispiel 6: Zwillings-Y-Achsen und Inset-Subplots

Demonstrieren Sie die Verwendung von secondary_axis, twinx und inset_axes.

Beispiel

import matplotlib.pyplot as plt
import numpy as np

fig, ax = plt.subplots(figsize=(8, 5), layout='constrained')

x = np.linspace(0, 10, 100)

# Hauptdiagramm: Zeichne zwei Kurven mit unterschiedlichen Dimensionen
ax.plot(x, np.sin(x), 'b-', label='sin(x) [Amplitude]')
ax.set_xlabel('x (radians)')
ax.set_ylabel('sin(x)', color='blue')
ax.tick_params(axis='y', labelcolor='blue')

# Zwillings-Y-Achsen erstellen (gemeinsame X-Achse)
ax2 = ax.twinx()
ax2.plot(x, np.exp(x/5), 'r--', label='exp(x/5) [Wachstum]')
ax2.set_ylabel('exp(x/5)', color='red')
ax2.tick_params(axis='y', labelcolor='red')

# Inset-Subplot in ax hinzufügen (in einen lokalen Bereich zoomen)
axins = ax.inset_axes([0.15, 0.5, 0.3, 0.35])
axins.plot(x, np.sin(x), 'b-')
axins.set_xlim(3, 5)
axins.set_ylim(-1.2, 1.2)
axins.set_title('Vergrößerter Bereich')
axins.grid(True, alpha=0.3)

# Inset-Bereich im Hauptdiagramm markieren
ax.indicate_inset_zoom(axins, edgecolor='gray')

ax.set_title('Duale Y-Achsen mit Inset-Zoom', fontsize=14)
plt.show()

Häufige Probleme

Diagramme werden nicht angezeigt

Bestätigen Sie, ob Sie aufgerufen habenplt.show()。

Bei nicht-interaktiven Backends (wie Agg) muss dieser explizit aufgerufen werdenshow()。

Verwenden Sie in Jupyter Notebook%matplotlib inlineMagic-Befehl, um sicherzustellen, dass Diagramme inline angezeigt werden

Zu viele Ticks oder falsche Reihenfolge

Eine häufige Ursache ist die Übergabe einer Liste von Zeichenketten als Daten (anstelle von numerischen oder datetime-Werten)

Matplotlib behandelt eine Liste von Zeichenketten als kategorische Variablen, mit einem Tick pro eindeutigem Wert, angeordnet in der Reihenfolge ihres Auftretens

Lösung: Konvertieren Sie die Zeichenketten in numerische Werte, wie z. B.np.asarray(data, dtype='float')odernp.asarray(data, dtype='datetime64[s]')。

Chinesische Zeichen werden als Kästchen angezeigt

Die Standardschriftart von Matplotlib (DejaVu Sans) enthält keine chinesischen Glyphen; Sie müssen eine Schriftart angeben, die Chinesisch unterstützt

Setplt.rcParams['font.sans-serif'] = ['SimHei', 'Arial Unicode MS', ...]Und stellen Sie sicher, dass die entsprechende Schriftart auf dem System installiert ist

Überlappende oder abgeschnittene Beschriftungen

Es wird empfohlen, sie beim Erstellen einer Figure zu verwendenlayout='constrained'oderlayout='compressed'Parameter, der automatisch Überlappungen von Beschriftungen, Titeln und Legenden behandelt

Du kannst auchfig.tight_layout()oderfig.subplots_adjust()manuell anpassen

Unterschied zwischen pcolor und pcolormesh

pcolor()Erstellt eine PolyCollection, die Darstellung ist langsamer, aber präziser

pcolormesh()Erstellt ein QuadMesh, die Darstellung ist schneller und es ist die empfohlene Wahl für die meisten Szenarien

Für sehr große Gitter,pcolorfast()Die Verwendung von imshow zum Plotten ist am schnellsten, weist aber die geringste Genauigkeit auf


Verwandte Ressourcen

  • Offizielle Matplotlib-Website: matplotlib.org
  • Offizielle Galerie (Gallery): matplotlib.org/stable/gallery/index.html
  • Vollständige API-Referenz: matplotlib.org/stable/api/index.html
  • Installationsanleitung: matplotlib.org/stable/install/index.html
  • Leitfaden zur Mitarbeit: matplotlib.org/stable/devel/index.html
Weitere Erweiterungen