Neues in Matplotlib 1.2 (9. Nov. 2012)#

Hinweis

Matplotlib 1.2 unterstützt Python 2.6, 2.7 und 3.1

Python 3.x Unterstützung#

Matplotlib 1.2 ist die erste Version, die Python 3.x unterstützt, speziell Python 3.1 und 3.2. Um dies auf vernünftige Weise zu realisieren, mussten wir auch die Unterstützung für Python-Versionen älter als 2.6 einstellen.

Diese Arbeit wurde von Michael Droettboom, der Cape Town Python Users' Group und vielen anderen geleistet und finanziell teilweise vom SAGE-Projekt unterstützt.

Die folgenden GUI-Backends funktionieren unter Python 3.x: Gtk3Cairo, Qt4Agg, TkAgg und MacOSX. Die anderen GUI-Backends haben noch keine adäquaten Bindungen für Python 3.x, funktionieren aber weiterhin unter Python 2.6 und 2.7, insbesondere die Qt- und QtAgg-Backends (die als veraltet gelten). Die Nicht-GUI-Backends wie PDF, PS und SVG funktionieren sowohl unter Python 2.x als auch 3.x.

Funktionen, die von der Python Imaging Library abhängen, wie z. B. die JPEG-Verarbeitung, funktionieren nicht, da die Version von PIL für Python 3.x nicht ausreichend ausgereift ist.

PGF/TikZ Backend#

Peter Würtz hat ein Backend geschrieben, das es Matplotlib ermöglicht, Grafiken als Zeichenbefehle für LaTeX zu exportieren. Diese können mit PdfLaTeX, XeLaTeX oder LuaLaTeX unter Verwendung des PGF/TikZ-Pakets verarbeitet werden. Anwendungsbeispiele und Dokumentation finden Sie unter Text-Rendering mit XeLaTeX/LuaLaTeX über das pgf-Backend.

../../_images/pgf_preamble.png

Locator-Schnittstelle#

Philip Elson hat die Intelligenz hinter den Tick-Locator-Klassen mit einer einfachen Schnittstelle offengelegt. Zum Beispiel, um nicht mehr als 5 sinnvolle Schritte zu erhalten, die die Werte 10 und 19,5 überspannen.

>>> import matplotlib.ticker as mticker
>>> locator = mticker.MaxNLocator(nbins=5)
>>> print(locator.tick_values(10, 19.5))
[ 10.  12.  14.  16.  18.  20.]

Tri-Surface Plots#

Damon McDougall hat eine neue Plot-Methode für das mplot3d-Toolkit namens plot_trisurf() hinzugefügt.

../../_images/sphx_glr_trisurf3d_001.png

Länge von Farbleisten-Erweiterungen steuern#

Andrew Dawson hat ein neues Schlüsselwortargument extendfrac zu colorbar() hinzugefügt, um die Länge von minimalen und maximalen Farbleisten-Erweiterungen zu steuern.

(Quellcode, 2x.png, png)

Figuren sind pickelbar#

Philip Elson hat eine experimentelle Funktion hinzugefügt, um Figuren pickelbar zu machen, für eine schnelle und einfache kurzfristige Speicherung von Plots. Pickle-Dateien sind nicht für die langfristige Speicherung gedacht, werden beim Wiederherstellen eines Pickles, das in einer anderen Matplotlib-Version gespeichert wurde, nicht unterstützt und sind unsicher beim Wiederherstellen eines Pickles aus einer nicht vertrauenswürdigen Quelle. Nichtsdestotrotz sind sie für die kurzfristige Speicherung zur späteren Bearbeitung innerhalb von Matplotlib nützlich.

Standard-Bounding-Box in matplotlibrc setzen#

Zwei neue Standardwerte sind in der matplotlibrc-Konfigurationsdatei verfügbar: savefig.bbox, die auf 'standard' oder 'tight' gesetzt werden kann, und savefig.pad_inches, die den Rand der Bounding-Box steuert.

Neue Boxplot-Funktionalität#

Benutzer können jetzt eigene Methoden zur Berechnung des Medians und seiner Konfidenzintervalle in die boxplot-Methode integrieren. Für jede Datenspalte, die an boxplot übergeben wird, kann der Benutzer einen zugehörigen Median und ein Konfidenzintervall angeben.

../../_images/sphx_glr_boxplot_demo_003.png

Neue RC-Parameter-Funktionalität#

Matthew Emmett hat eine Funktion und einen Kontextmanager zur Verwaltung von RC-Parametern hinzugefügt: rc_file() und rc_context. Zum Laden von RC-Parametern aus einer Datei

>>> mpl.rc_file('mpl.rc')

Zum vorübergehenden Verwenden von RC-Parametern

>>> with mpl.rc_context(fname='mpl.rc', rc={'text.usetex': True}):
>>>     ...

Streamplot#

Tom Flannaghan und Tony Yu haben eine neue Funktion streamplot() hinzugefügt, um die Stromlinien eines Vektorfeldes zu plotten. Dies ist eine lang erwartete Funktion und ergänzt die vorhandene Funktion quiver() zum Plotten von Vektorfeldern. Zusätzlich zum einfachen Plotten der Stromlinien des Vektorfeldes ermöglicht streamplot() Benutzern, die Farben und/oder Linienbreiten der Stromlinien auf einen separaten Parameter abzubilden, wie z. B. die Geschwindigkeit oder die lokale Intensität des Vektorfeldes.

../../_images/sphx_glr_plot_streamplot_001.png

Neue hist-Funktionalität#

Nic Eggert hat ein neues Keyword-Argument stacked zu hist() hinzugefügt, das die Erstellung von gestapelten Histogrammen mit jedem beliebigen Histogrammtyp ermöglicht. Zuvor war diese Funktionalität nur durch die Verwendung des "barstacked"-Histogrammtyps verfügbar. Jetzt, wenn stacked=True an die Funktion übergeben wird, können alle Histogrammtypen gestapelt werden. Der "barstacked"-Histogrammtyp behält seine bisherige Funktionalität zur Abwärtskompatibilität.

Aktualisierte mitgelieferte Abhängigkeiten#

Die folgenden Abhängigkeiten, die mit Matplotlib mitgeliefert und optional zusammen mit ihm installiert werden, wurden aktualisiert:

  • pytz 2012d

  • dateutil 1.5 unter Python 2.x,

    und 2.1 unter Python 3.x

Flächenzentrierte Farben in tripcolor-Plots#

Ian Thomas hat tripcolor() erweitert, um die Angabe eines Farbwertes pro Dreiecksfläche anstelle pro Punkt in einer Triangulierung zu ermöglichen.

../../_images/sphx_glr_tripcolor_demo_001.png

Schraffurmuster in gefüllten Kontur-Plots mit Legenden#

Phil Elson hat die Unterstützung für Schraffuren zu contourf() hinzugefügt, zusammen mit der Möglichkeit, eine Legende zur Identifizierung von Konturbereichen zu verwenden.

../../_images/sphx_glr_contourf_hatching_001.png

Bekannte Probleme in der Matplotlib 1.2 Version#

  • Bei Verwendung des Qt4Agg-Backends mit IPython 0.11 oder neuer wird der Speichern-Dialog nicht angezeigt. Dies sollte in einer zukünftigen Version von IPython behoben werden.