Was gibt es Neues in Matplotlib 3.2 (04. März 2020)#

Eine Liste aller Probleme und Pull-Anfragen seit der letzten Überarbeitung finden Sie in den GitHub-Statistiken für 3.10.3 (08. Mai 2025).

Einheitskonverter erkennen Unterklassen#

Einheitskonverter verarbeiten nun auch Instanzen von Unterklassen der Klasse, für die sie registriert wurden.

imsave akzeptiert Metadaten und PIL-Optionen#

imsave hat Unterstützung für die Parameter metadata und pil_kwargs erhalten. Diese Parameter verhalten sich ähnlich wie bei der Methode Figure.savefig().

cbook.normalize_kwargs#

cbook.normalize_kwargs bietet nun eine praktische Schnittstelle zur Normalisierung von Künstler-Eigenschaften (z. B. von "lw" zu "linewidth").

>>> cbook.normalize_kwargs({"lw": 1}, Line2D)
{"linewidth": 1}

Das erste Argument ist die zu normalisierende Zuordnung, und das zweite Argument kann eine Künstlerklasse oder eine Künstlerinstanz sein (es kann auch eine Zuordnung in einem bestimmten Format sein; weitere Details finden Sie in der Dokumentation der Funktion).

FontProperties akzeptiert os.PathLike#

Das Argument fname für FontProperties kann nun ein os.PathLike sein, z. B.

>>> FontProperties(fname=pathlib.Path("/path/to/font.ttf"))

Gouraud-Schattierung mit Alpha-Kanal im PDF-Backend#

Das PDF-Backend unterstützt nun einen Alpha-Kanal in Gouraud-beschatteten Dreiecksnetzen.

Kerning-Anpassungen verwenden jetzt korrekte Werte#

Aufgrund eines Fehlers bei der Anwendung von Kerning-Anpassungen korrigierten frühere Versionen von Matplotlib das Kerning zu wenig. Diese Version wendet das Kerning nun korrekt an (für von FreeType unterstützte Schriftarten). Um das alte Verhalten wiederherzustellen (z. B. für Testbilder), können Sie rcParams["text.kerning_factor"] (Standard: 0) auf 6 (anstelle von 0) setzen. Andere Werte haben undefiniertes Verhalten.

(Quellcode, 2x.png, png)

Beachten Sie, wie der Abstand zwischen Zeichen gleichmäßig zwischen ihren Begrenzungsrahmen liegt (oben). Mit korrigiertem Kerning (unten) werden schräge Zeichen (z. B. AV oder VA) enger zusammen platziert, ebenso wie verschiedene andere Zeichenpaare, abhängig von der Schriftartunterstützung (z. B. T und e oder der Punkt nach dem W).

(Quellcode, 2x.png, png)

bar3d Lichterquellen-Schattierung#

bar3d() unterstützt nun Beleuchtung aus verschiedenen Winkeln, wenn der Parameter shade auf True gesetzt ist, was mit dem Parameter lightsource konfiguriert werden kann.

Verschieben von Fehlerbalken#

Zuvor akzeptierte errorbar() ein Schlüsselwortargument errorevery, sodass der Befehl plt.errorbar(x, y, yerr, errorevery=6) Fehlerbalken zu den Datenpunkten x[::6], y[::6] hinzufügte.

errorbar() akzeptiert nun auch ein Tupel für errorevery, sodass plt.errorbar(x, y, yerr, errorevery=(start, N)) Fehlerbalken zu den Punkten x[start::N], y[start::N] hinzufügt.

Verbesserungen am Logit-Skalen-Ticker und -Formatter#

Die in Version 1.5 eingeführte Logit-Skala hatte keinen geeigneten Ticker und Formatter. Zuvor war die Position von Ticks nicht zoomabhängig, es wurden zu viele Beschriftungen angezeigt, was die Lesbarkeit beeinträchtigte, und die Beschriftungsformatierung passte sich nicht der Präzision an.

Ab dieser Version verhält sich der Logit-Locator fast genauso wie der Locator für die logarithmische oder lineare Skala, abhängig vom verwendeten Zoom. Die Anzahl der Ticks wird gesteuert. Einige kleinere Beschriftungen werden adaptiv als Unterbeschriftungen in logarithmischer Skala angezeigt. Die Formatierung wird an Wahrscheinlichkeiten angepasst und die Präzision passt sich der Skala an.

rcParams für Achsentitel-Position und -Farbe#

Zwei neue rcParams wurden hinzugefügt: rcParams["axes.titlelocation"] (Standard: 'center') gibt die Standardausrichtung des Achsentitels an, und rcParams["axes.titlecolor"] (Standard: 'auto') die Standardfarbe des Achsentitels.

Gültige Werte für axes.titlelocation sind: left, center und right. Gültige Werte für axes.titlecolor sind: auto oder eine Farbe. Das Setzen auf auto greift auf das frühere Verhalten zurück, nämlich die Verwendung der Farbe in text.color.

3-stellige und 4-stellige Hex-Farben#

Farben können nun mit 3-stelligen oder 4-stelligen Hex-Farben angegeben werden, eine Kurzform für die Farben, die durch Duplizieren jedes Zeichens erhalten werden, z. B. ist #123 äquivalent zu #112233 und #123a ist äquivalent zu #112233aa.

Unterstützung für RGB(A)-Bilder in pcolorfast hinzugefügt#

Axes.pcolorfast akzeptiert nun 3D-Bild-Arrays (RGB oder RGBA).