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).
| Funktion | Beschreibung |
|---|---|
| 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.
| Funktion | Beschreibung |
|---|---|
| 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.
| Funktion | Beschreibung |
|---|---|
| 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.
| Funktion | Beschreibung |
|---|---|
| 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.
| Funktion | Beschreibung |
|---|---|
| boxplot() | Boxplot zeichnen |
| violinplot() | Violinplot zeichnen |
| ecdf() | Empirische kumulative Verteilungsfunktion (ECDF) zeichnen |
6. Binning und Histogramme
| Funktion | Beschreibung |
|---|---|
| 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
| Funktion | Beschreibung |
|---|---|
| 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.
| Funktion | Beschreibung |
|---|---|
| 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
| Funktion | Beschreibung |
|---|---|
| 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
| Funktion | Beschreibung |
|---|---|
| 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
| Funktion | Beschreibung |
|---|---|
| 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.
| Funktion | Beschreibung |
|---|---|
| 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.
| Funktion | Beschreibung |
|---|---|
| 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.
| Funktion | Beschreibung |
|---|---|
| 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 |
| colormaps | Colormap-Registrierungsobjekt |
| color_sequences | Farbsequenz-Registrierungsobjekt |
15. Konfiguration
Funktionen zur Verwaltung globaler Konfigurationsparameter von Matplotlib.
| Funktion | Beschreibung |
|---|---|
| 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.
| Funktion | Beschreibung |
|---|---|
| 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
| Funktion | Beschreibung |
|---|---|
| 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
| Methode | Beschreibung |
|---|---|
| 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
| Methode | Beschreibung |
|---|---|
| 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
| Methode | Beschreibung |
|---|---|
| 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
| Methode | Beschreibung |
|---|---|
| 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
| Methode | Beschreibung |
|---|---|
| Axes.hist() | Histogramm |
| Axes.hist2d() | 2D-Histogramm |
| Axes.hexbin() | Hexbin-Diagramm |
| Axes.stairs() | Treppenhistogramm |
6. Konturmethoden
| Methode | Beschreibung |
|---|---|
| Axes.contour() | Kontur |
| Axes.contourf() | Gefüllte Kontur |
| Axes.clabel() | Konturbeschriftungen |
7. 2D-Array-Methoden
| Methode | Beschreibung |
|---|---|
| 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
| Methode | Beschreibung |
|---|---|
| Axes.triplot() | Dreiecksgitter-Linien |
| Axes.tripcolor() | Dreiecksgitter-Pseudofarben |
| Axes.tricontour() | Dreiecksgitter-Kontur |
| Axes.tricontourf() | Gefüllte Dreiecksgitter-Kontur |
9. Text- und Annotationsmethoden
| Methode | Beschreibung |
|---|---|
| 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
| Methode | Beschreibung |
|---|---|
| Axes.quiver() | Vektorfeld (Pfeilplot) |
| Axes.quiverkey() | Skalenbalken für Vektorfeld-Legende |
| Axes.barbs() | Windbarben-Diagramm |
| Axes.streamplot() | Stromlinien-Diagramm |
11. Methoden zum Leeren
| Methode | Beschreibung |
|---|---|
| Axes.cla() | Gesamten Inhalt in den Axes löschen |
| Axes.clear() | Die Axes leeren (wie cla()) |
12. Darstellungsmethoden
| Methode | Beschreibung |
|---|---|
| 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
| Methode | Beschreibung |
|---|---|
| Axes.set_prop_cycle() | Den Property-Cycle für Linienfarben/Linienstile usw. festlegen |
14. Steuerung von Achsen und Ticks
Achsenzugriff:
| Methode | Beschreibung |
|---|---|
| Axes.xaxis / Axes.yaxis | Das 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:
| Methode | Beschreibung |
|---|---|
| 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:
| Methode | Beschreibung |
|---|---|
| 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:
| Methode | Beschreibung |
|---|---|
| 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:
| Methode | Beschreibung |
|---|---|
| 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:
| Methode | Beschreibung |
|---|---|
| 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:
| Methode | Beschreibung |
|---|---|
| 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
| Methode | Beschreibung |
|---|---|
| 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
| Methode | Beschreibung |
|---|---|
| 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
| Methode | Beschreibung |
|---|---|
| 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
| Methode | Beschreibung |
|---|---|
| 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
| Methode | Beschreibung |
|---|---|
| Axes.stale | Kennzeichnet, 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
| Methode | Beschreibung |
|---|---|
| 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
| Methode | Beschreibung |
|---|---|
| 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
| Methode | Beschreibung |
|---|---|
| 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)
| Methode | Beschreibung |
|---|---|
| Axes.name | Projektionsname (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
| Methode | Beschreibung |
|---|---|
| Axes.set() | Eigenschaften im Batch festlegen |
| Axes.zorder | zorder 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.viewLim | Ansichtsgrenzen (Eigenschaft) |
| Axes.dataLim | Datengrenzen (Eigenschaft) |
| Axes.spines | Spine-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
| Methode | Beschreibung |
|---|---|
| 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.axes | Axes-Liste (Eigenschaft) |
| Figure.get_axes() | Alle Axes abrufen |
| Figure.delaxes() | Die angegebenen Axes entfernen |
2. Speichern
| Methode | Beschreibung |
|---|---|
| Figure.savefig() | Die Figure in eine Datei speichern |
3. Annotationen auf Figure-Ebene
| Methode | Beschreibung |
|---|---|
| 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
| Methode | Beschreibung |
|---|---|
| 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.dpi | DPI-Auflösung (Eigenschaft) |
| Figure.set_dpi() / get_dpi() | DPI festlegen/abrufen |
5. Subplot-Layout
| Methode | Beschreibung |
|---|---|
| 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
| Methode | Beschreibung |
|---|---|
| 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
| Methode | Beschreibung |
|---|---|
| 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
| Methode | Beschreibung |
|---|---|
| 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
| Methode | Beschreibung |
|---|---|
| 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
| Funktion | Beschreibung |
|---|---|
| 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
| Methode | Beschreibung |
|---|---|
| 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
| Methode | Beschreibung |
|---|---|
| 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
| Methode | Beschreibung |
|---|---|
| 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.
| Stilname | Beschreibung |
|---|---|
| default | Standardstil, klar und neutral |
| ggplot | Ahmt den R-ggplot2-Stil nach, grauer Hintergrund mit weißem Gitter |
| seaborn-v0_8 | Moderner Stil ähnlich der seaborn-Bibliothek |
| seaborn-v0_8-bright | Helle seaborn-Palette |
| seaborn-v0_8-colorblind | Farbenblindfreundliche seaborn-Palette |
| seaborn-v0_8-dark | dunkler seaborn-Stil |
| seaborn-v0_8-dark-palette | seaborn deep-Palette |
| seaborn-v0_8-darkgrid | seaborn darkgrid-Stil |
| seaborn-v0_8-deep | dunkle seaborn-Palette |
| seaborn-v0_8-muted | seaborn muted-Palette |
| seaborn-v0_8-notebook | seaborn Notebook-Stil |
| seaborn-v0_8-paper | seaborn Papierstil |
| seaborn-v0_8-pastel | seaborn pastel-Palette |
| seaborn-v0_8-poster | seaborn Poster-Stil |
| seaborn-v0_8-talk | seaborn Talk-Stil |
| seaborn-v0_8-ticks | seaborn Ticks-Stil |
| seaborn-v0_8-white | seaborn white-Stil |
| seaborn-v0_8-whitegrid | seaborn whitegrid-Stil |
| fivethirtyeight | Ahmt den Datenjournalismus-Stil von FiveThirtyEight nach |
| dark_background | Dunkler Hintergrund, geeignet für Präsentationen und die Verwendung bei Nacht |
| bmh | Stil von Bayesian Methods for Hackers |
| grayscale | Graustufen-Stil, geeignet für Schwarz-Weiß-Druck |
| classic | Matplotlib v1.x classic-Stil |
| fast | Vereinfachter Stil, schnelleres Rendering |
| Solarize_Light2 | Helles Solarized-Theme |
| tableau-colorblind10 | Farbenblindenfreundliche Tableau-Palette |
Häufige rcParams-Konfigurationen
| Parameters | Beschreibung | Beispielwerte |
|---|---|---|
| figure.figsize | Standardgröße der Abbildung (Zoll) | [8, 6] |
| figure.dpi | Standardauflösung | 100 |
| figure.facecolor | Hintergrundfarbe der Abbildung | 'white' |
| figure.edgecolor | Randfarbe der Abbildung | 'white' |
| font.size | Globale Schriftgröße | 12 |
| font.family | Schriftfamilie | 'sans-serif' |
| font.sans-serif | Sans-serif-Schriftartenliste | ['DejaVu Sans', ...] |
| axes.titlesize | Titel-Schriftgröße | 'large' |
| axes.labelsize | Schriftgröße der Achsenbeschriftung | 'medium' |
| axes.grid | Ob das Gitter standardmäßig angezeigt wird | False |
| axes.facecolor | Hintergrundfarbe der Achsen | 'white' |
| axes.spines.top | Ob die obere Begrenzungslinie angezeigt wird | True |
| axes.spines.right | Ob die rechte Begrenzungslinie angezeigt wird | True |
| lines.linewidth | Standard-Linienbreite | 1.5 |
| lines.markersize | Standardgröße der Markierung | 6 |
| lines.linestyle | Standard-Linienstil | '-' |
| legend.loc | Standardposition der Legende | 'best' |
| legend.fontsize | Schriftgröße der Legende | 'medium' |
| xtick.labelsize | Größe der x-Achsen-Tick-Beschriftung | 'medium' |
| ytick.labelsize | Größe der y-Achsen-Tick-Beschriftung | 'medium' |
| savefig.dpi | Standardauflösung beim Speichern von Bildern | 'figure' |
| savefig.bbox | Bounding-Box-Modus beim Speichern | Keine |
| image.cmap | Standard-Colormap | 'viridis' |
| image.interpolation | Bildinterpolationsmethode | 'antialiased' |
Kurzreferenz für Colormaps
| Kategorie | Colormap-Name | Anwendbare Szenarien |
|---|---|---|
| Wahrnehmungsgleichmäßig (sequenziell) | viridis, plasma, inferno, magma, cividis | Kontinuierliche 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, YlGn | Kontinuierliche Daten von niedrig bis hoch, ein einzelner Farbton |
| Divergierend | PiYG, PRGn, BrBG, PuOr, RdGy, RdBu, RdYlBu, RdYlGn, Spectral, coolwarm, bwr, seismic | Bidirektionale Daten mit einem zentralen Referenzpunkt |
| Zyklisch | twilight, twilight_shifted, hsv | Periodische Daten (z. B. Winkel, Zeit) |
| Qualitativ | Pastel1, Pastel2, Paired, Accent, Dark2, Set1, Set2, Set3, tab10, tab20, tab20b, tab20c | Diskrete kategoriale Daten |
| Verschiedenes | flag, prism, ocean, gist_earth, terrain, gist_stern, gnuplot, gnuplot2, CMRmap, cubehelix, brg, gist_rainbow, rainbow, jet, turbo, nipy_spectral, gist_ncar | Spezialzwecke 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 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 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 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 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 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 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