API-Änderungen für 3.3.0#
Verhaltensänderungen#
Formatter.fix_minus#
Formatter.fix_minus führt nun immer dann einen Ersatz von Bindestrichen durch Unicode-Minuszeichen durch, wenn rcParams["axes.unicode_minus"] (Standard: True) wahr ist; d.h. sein Verhalten entspricht dem von ScalarFormatter.fix_minus (ScalarFormatter erbt diese Implementierung nun lediglich).
Dieser Ersatz wird nun von der Methode format_data_short der verschiedenen eingebauten Formatter-Klassen verwendet, was den Cursorwert in den GUI-Symbolleisten beeinflusst.
FigureCanvasBase hat nun immer ein manager-Attribut, das None sein kann#
Zuvor hatte es nicht notwendigerweise ein solches Attribut. Eine Prüfung auf hasattr(figure.canvas, "manager") sollte nun durch figure.canvas.manager is not None (oder getattr(figure.canvas, "manager", None) is not None zur Abwärtskompatibilität) ersetzt werden.
cbook.CallbackRegistry propagiert nun Ausnahmen, wenn keine GUI-Ereignisschleife ausgeführt wird#
cbook.CallbackRegistry propagiert nun standardmäßig Ausnahmen, die von Rückruffunktionen ausgelöst werden, wenn keine interaktive GUI-Ereignisschleife ausgeführt wird. Wenn eine GUI-Ereignisschleife *läuft*, gibt cbook.CallbackRegistry standardmäßig weiterhin nur einen Traceback aus, da unbehandelte Ausnahmen das Programm in diesem Fall vollständig abort() machen können.
Axes.locator_params() validiert den Parameter axis#
axes.Axes.locator_params akzeptierte früher jeden Wert für axis und tat stillschweigend nichts, wenn ein nicht unterstützter Wert übergeben wurde. Nun löst sie einen ValueError aus.
Axis.set_tick_params() validiert den Parameter which#
Axis.set_tick_params (und die höherstufigen axes.Axes.tick_params und pyplot.tick_params) akzeptierten früher jeden Wert für which und taten stillschweigend nichts, wenn ein nicht unterstützter Wert übergeben wurde. Nun lösen sie einen ValueError aus.
Axis.set_ticklabels() muss mit FixedLocator.locs übereinstimmen#
Wenn eine Achse einen ticker.FixedLocator verwendet, der typischerweise durch einen Aufruf von Axis.set_ticks gesetzt wird, dann muss die Anzahl der übergebenen Tick-Labels mit der Anzahl der verfügbaren Positionen (FixedFormattor.locs) übereinstimmen. Andernfalls wird ein ValueError ausgelöst.
backend_pgf.LatexManager.latex#
backend_pgf.LatexManager.latex wird nun mit encoding="utf-8" erstellt, daher sind seine stdin-, stdout- und stderr-Attribute utf8-enkodiert.
pyplot.xticks() und pyplot.yticks()#
Zuvor führte das Übergeben von Labels ohne Übergeben der Ticks an pyplot.xticks oder pyplot.yticks zu
TypeError: object of type 'NoneType' has no len()
Nun wird ein TypeError mit einer korrekten Fehlerbeschreibung ausgelöst.
Das Setzen derselben Eigenschaft unter mehreren Aliassen löst nun einen TypeError aus#
Zuvor gab der Aufruf von z.B. plot(..., color=somecolor, c=othercolor) eine Warnung aus, da color und c tatsächlich auf dieselbe Künstler-Eigenschaft abgebildet werden. Dies löst nun einen TypeError aus.
FileMovieWriter temporäres Frame-Verzeichnis#
FileMovieWriter schreibt nun standardmäßig temporäre Frames in ein temporäres Verzeichnis, das beim Beenden immer gelöscht wird. Um die einzelnen Frames auf dem Dateisystem zu speichern, übergeben Sie ein explizites *frame_prefix*.
Axes.plot akzeptiert nicht mehr, dass *x* und *y* beide 2D sind und eine unterschiedliche Anzahl von Spalten haben#
Zuvor würde der Aufruf von Axes.plot z.B. mit *x* der Form (n, 3) und *y* der Form (n, 2) die erste Spalte von *x* gegen die erste Spalte von *y*, die zweite Spalte von *x* gegen die zweite Spalte von *y* **und** die erste Spalte von *x* gegen die dritte Spalte von *y* zeichnen. Dies löst nun stattdessen einen Fehler aus.
Text.update_from kopiert nun den usetex-Zustand vom Quell-Text#
stem ist nun standardmäßig use_line_collection=True#
Dies erstellt das Stem-Plot als LineCollection anstelle von einzelnen Line2D-Objekten, was die Leistung erheblich verbessert.
Der rcParams-Farbvalidator ist nun strenger#
Zuvor akzeptierten rcParams-Einträge, deren Werte farbähnlich waren, "überflüssige" zusätzliche Buchstaben oder Zeichen in der "Mitte" des Strings, z.B. würde "(0, 1a, '0.5')" als (0, 1, 0.5) interpretiert werden. Diese zusätzlichen Zeichen (einschließlich der internen Anführungszeichen) lösen nun einen ValueError aus.
SymLogNorm hat nun einen Parameter base#
Zuvor hatte SymLogNorm kein base-Schlüsselwortargument und verwendete standardmäßig base=np.e, obwohl die Dokumentation base=10 angab. In Vorbereitung auf die Umstellung des Standards auf 10 gibt der Aufruf von SymLogNorm ohne das neue base-Schlüsselwortargument eine Deprecation-Warnung aus.
errorbar zyklisiert nun die Farben, wenn nur die Fehlerbalkenfarbe gesetzt ist#
Zuvor schaltete das Setzen von ecolor den automatischen Farbzyklus für das Plot aus, was dazu führte, dass die Linien und Marker bei mehreren Plot-Aufrufen standardmäßig die erste Farbe des Farbzyklus erhielten.
rcsetup.validate_color_for_prop_cycle löst nun immer einen TypeError für Byte-Eingaben aus#
Zuvor wurde ein TypeError ausgelöst, *außer* wenn die Eingabe die Form b"C[number]" hatte, in welchem Fall ein ValueError ausgelöst wurde.
FigureCanvasPS.print_ps und FigureCanvasPS.print_eps wenden nun keine Randfarbe und Füllfarbe mehr an#
Diese Methoden gehen nun davon aus, dass die Rand- und Füllfarbe der Figur korrekt von FigureCanvasBase.print_figure angewendet wurden, da sie normalerweise über diese aufgerufen werden.
Dieses Verhalten ist konsistent mit anderen Methoden zum Speichern von Figuren (FigureCanvasAgg.print_png, FigureCanvasPdf.print_pdf, FigureCanvasSVG.print_svg).
rcParams["keymap.quit_all"] (Standard: []) und rcParams["keymap.all_axes"] (Standard: []) wurden hinzugefügt, um alle aktuellen Achsen zu löschen, d.h. alle Achsen im aktuellen Hauptfenster.
Dies ist konsistent mit anderen Fehlern bei Signaturüberschneidungen. Zuvor wurde ein ValueError ausgelöst.
Tastenkombination zum Schließen aller Figuren#
Tastenkombinationen zum Schließen aller Figuren funktionieren nun auch für die klassische Symbolleiste. Es gibt keine Standard-Tastenkombination mehr, da das unbeabsichtigte Schließen aller Figuren durch einen Tastendruck zu leicht passieren kann. Sie können die Tastenkombination selbst konfigurieren, indem Sie rcParams["keymap.quit_all"] (Standard: []) verwenden.
Autoscale für Pfeil#
Der Aufruf von ax.arrow() skaliert nun die Achsen automatisch.
set_tick_params(label1On=False) macht nun auch den Offset-Text (falls vorhanden) unsichtbar#
... da der Offset-Text sowieso selten ohne Tick-Labels interpretierbar ist.
Parametername von Axes.annotate und pyplot.annotate geändert#
Der Parameter s für Axes.annotate und pyplot.annotate wurde in text umbenannt, passend zu Annotation.
Der alte Parametername wird weiterhin unterstützt, aber die Unterstützung dafür wird in einer zukünftigen Matplotlib-Version eingestellt.
font_manager.json_dump sperrt nun die Font-Manager-Dump-Datei#
font_manager.json_dump... um zu verhindern, dass mehrere Prozesse gleichzeitig darauf schreiben.
pyplot.rgrids und pyplot.thetagrids wirken nun auch als Setter, wenn sie nur mit kwargs aufgerufen werden#
pyplot.rgridspyplot.thetagrids wirken nun auch als Setter, wenn sie nur mit kwargs aufgerufen werden#Zuvor wurden Schlüsselwortargumente stillschweigend ignoriert, wenn keine Positionsargumente übergeben wurden.
Axis.get_minorticklabels und Axis.get_majorticklabels geben nun eine normale Liste zurück#
Axis.get_minorticklabelsAxis.get_majorticklabelsZuvor gab Axis.get_minorticklabels und Axis.get_majorticklabels eine `silent_list` zurück. Ihr Rückgabetyp ist nun eine normale Liste. Die Methoden get_xminorticklabels, get_yminorticklabels, get_zminorticklabels, Axis.get_ticklabels, get_xmajorticklabels, get_ymajorticklabels und get_zmajorticklabels werden von dieser Änderung betroffen sein.
Standard-Slider-Formatter#
Die Standardmethode zur Formatierung von Slider-Werten wurde geändert, um einen ScalarFormatter zu verwenden, der an die Slider-Wertgrenzen angepasst ist. Dies sollte sicherstellen, dass Werte mit einer angemessenen Anzahl von signifikanten Stellen angezeigt werden, auch wenn sie viel kleiner oder viel größer als 1 sind. Um das alte Verhalten wiederherzustellen, übergeben Sie explizit "%1.2f" als valfmt-Parameter an Slider.
Hinzufügen des Schlüsselwortarguments normalize zu Axes.pie#
pie() zeichnete früher einen partiellen Kreis, wenn die Summe der Werte < 1 war. Dieses Verhalten ist veraltet und wird sich dahingehend ändern, dass die Werte standardmäßig immer zu einem vollen Kreis normalisiert werden. Wenn Sie einen partiellen Kreis zeichnen möchten, übergeben Sie bitte explizit normalize=False.
table.CustomCell ist nun eine Alias für table.Cell#
Die gesamte Funktionalität von CustomCell wurde in ihre Basisklasse Cell verschoben.
wx Timer Intervall#
Das Setzen des Timer-Intervalls bei einem noch nicht gestarteten TimerWx startet ihn nicht mehr.
Histogramme vom Typ "step" verwenden nun standardmäßig den zorder von Line2D#
Dies stellt sicher, dass sie standardmäßig über den Gitterlinien liegen. Der alte zorder kann beibehalten werden, indem er als Schlüsselwortargument an Axes.hist übergeben wird.
Legend und OffsetBox Sichtbarkeit#
Legend und Unterklassen von OffsetBox (PaddedBox, AnchoredOffsetbox und AnnotationBbox) verfolgen nicht mehr direkt die Sichtbarkeit ihrer zugrunde liegenden Patch-Künstler, sondern geben diese Flagge stattdessen an den Patch weiter.
Legend und Table erlauben keine ungültigen Positionen mehr#
Dies betrifft Legenden, die auf einer Achse (Axes.legend und pyplot.legend) und auf einer Figur (Figure.legend und pyplot.figlegend) erstellt werden. Figure-Legenden akzeptieren auch die nicht unterstützte Position 'best' nicht mehr. Zuvor würden ungültige Achsenpositionen 'best' verwenden und ungültige Figure-Positionen 'upper right'.
Das Übergeben von Line2D's drawstyle zusammen mit linestyle wurde entfernt#
Anstelle von plt.plot(..., linestyle="steps--") verwenden Sie plt.plot(..., linestyle="--", drawstyle="steps"). ds ist ebenfalls ein Alias für drawstyle.
Großgeschriebene Farbstrings#
Die Unterstützung für die Übergabe von Ein-Buchstaben-Farben (eine von "rgbcmykw") in Großbuchstaben wurde entfernt; diese Farben sind nun Case-sensitiv (Kleinbuchstaben).
tight/constrained_layout berücksichtigt keine zu breiten Titel mehr#
tight_layout und constrained_layout verkleinern Achsen, um "Dekorationen" auf den Achsen zu berücksichtigen. Wenn jedoch eine x-Achsenbeschriftung oder ein Titel zu lang in x-Richtung sind, hilft es nicht, die Achsen in x-Richtung kleiner zu machen. Das Verhalten beider wurde geändert, um die Breite des Titels und der x-Achsenbeschriftung sowie die Höhe der y-Achsenbeschriftung in der Layout-Logik zu ignorieren.
Dies bedeutet auch, dass es ein neues Schlüsselwortargument für axes.Axes.get_tightbbox und axis.Axis.get_tightbbox gibt: for_layout_only, das standardmäßig False ist, aber wenn es True ist, eine Bounding Box nach den obigen Regeln zurückgibt.
rcParams["savefig.facecolor"] (Standard: 'auto') und rcParams["savefig.edgecolor"] (Standard: 'auto') sind nun standardmäßig "auto"#
Dieser neu zugelassene Wert für rcParams["savefig.facecolor"] (Standard: 'auto') und rcParams["savefig.edgecolor"] (Standard: 'auto'), sowie die Parameter facecolor und edgecolor für Figure.savefig, bedeuten "verwende die aktuelle Füllfarbe und Randfarbe der Figur".
Bei Verwendung eines einzelnen Datensatzes verpackt Axes.hist den hinzugefügten Künstler nicht mehr in eine silent_list#
Wenn Axes.hist mit einem einzelnen Datensatz aufgerufen wird, fügt es der Achse entweder ein BarContainer-Objekt hinzu (wenn histtype="bar" oder "barstacked"), oder ein Polygon-Objekt (wenn histype="step" oder "stepfilled") -- letzteres verpackt in einer Liste mit einem Element. Zuvor wurde jeder Künstler in eine silent_list verpackt. Dies ist nun nicht mehr der Fall: Der BarContainer wird nun unverändert zurückgegeben (dies ist eine API-breaking-Änderung, wenn Sie sich direkt auf die konkrete list-API verlassen haben; BarContainer erbt jedoch von tuple, sodass die meisten gängigen Operationen weiterhin verfügbar sind) und die Liste mit einem Element Polygon wird unverändert zurückgegeben. Dies macht die repr des zurückgegebenen Künstlers genauer: es ist nun
<BarContainer object of 10 artists> # "bar", "barstacked"
[<matplotlib.patches.Polygon object at 0xdeadbeef>] # "step", "stepfilled"
anstatt
<a list of 10 Patch objects> # "bar", "barstacked"
<a list of 1 Patch objects> # "step", "stepfilled"
Wenn Axes.hist mit mehreren Künstlern aufgerufen wird, verpackt es seinen Rückgabewert immer noch in eine silent_list, verwendet aber genauere Typinformationen.
<a list of 3 BarContainer objects> # "bar", "barstacked"
<a list of 3 List[Polygon] objects> # "step", "stepfilled"
anstatt
<a list of 3 Lists of Patches objects> # "bar", "barstacked"
<a list of 3 Lists of Patches objects> # "step", "stepfilled"
Qt- und wx-Backends erstellen standardmäßig keine Statusleiste mehr#
Die Koordinateninformationen werden nun in der Symbolleiste angezeigt, konsistent mit den anderen Backends. Dies soll die Einbettung von Matplotlib in größere GUIs vereinfachen, bei denen Matplotlib die Symbolleiste, aber nicht die Statusleiste steuert.
rcParams["text.hinting"] (Standard: 'force_autohint') unterstützt nun Namen, die auf FreeType-Flags abgebildet werden#
rcParams["text.hinting"] (Standard: 'force_autohint') unterstützt jetzt die Werte "default", "no_autohint", "force_autohint" und "no_hinting", die direkt den FreeType-Flags FT_LOAD_DEFAULT usw. entsprechen. Die alten Synonyme (bzw. "either", "native", "auto" und "none") werden weiterhin unterstützt, ihre Verwendung wird jedoch nicht mehr empfohlen. Um normalisierte Werte zu erhalten, verwenden Sie backend_agg.get_hinting_flag, das ganzzahlige Flag-Werte zurückgibt.
cbook.get_sample_data lädt automatisch Numpy-Arrays#
Wenn cbook.get_sample_data zum Laden einer npy- oder npz-Datei verwendet wird und der nur-Schlüsselwort-Parameter np_load True ist, wird die Datei automatisch mit numpy.load geladen. np_load ist aus Kompatibilitätsgründen standardmäßig False, wird aber in einer späteren Version True.
get_text_width_height_descent prüft jetzt ismath anstelle von rcParams["text.usetex"] (Standard: False)#
..., um zu bestimmen, ob eine Zeichenkette an die usetex-Maschinerie übergeben werden soll oder nicht. Dies ermöglicht es, einzelne Zeichenketten als nicht-usetex zu markieren, auch wenn der rcParam True ist.
Axes.vlines, Axes.hlines, pyplot.vlines und pyplot.hlines Änderung der Standardeinstellung für den colors-Parameter#
Der colors-Parameter wird nun standardmäßig rcParams["lines.color"] (Standard: 'C0') verwenden, während er zuvor 'k' als Standard hatte.
Aggressives Autoscaling von clim in ScalerMappable-Klassen#
Zuvor verzögerten einige Plot-Methoden das Autoscaling bis zur ersten Zeichnung, wenn nur eines der Schlüsselwortargumente vmin oder vmax übergeben wurde (Axes.scatter, Axes.hexbin, Axes.imshow, Axes.pcolorfast), skalierten aber basierend auf den übergebenen Daten, wenn keines übergeben wurde (unabhängig von den norm-Schlüsselwortargumenten). Andere Methoden (Axes.pcolor, Axes.pcolormesh) skalierten immer basierend auf den initialen Daten.
Alle Plot-Methoden lösen nun beim initialen Aufruf die nicht gesetzten vmin oder vmax basierend auf den übergebenen Daten auf.
Wenn Sie sich darauf verlassen haben, dass genau einer der Parameter vmin oder vmax zwischen dem Aufruf der Methode und dem ersten Rendern der Abbildung unbesetzt blieb, erhalten Sie das alte Verhalten zurück, indem Sie das relevante Limit manuell wieder auf None setzen
cm_obj.norm.vmin = None
# or
cm_obj.norm.vmax = None
was dann während des Zeichenprozesses aufgelöst wird.
Veraltete Funktionen#
figure.add_axes() ohne Argumente#
Der Aufruf von fig.add_axes() ohne Argumente tut derzeit nichts. Dieser Aufruf wird in Zukunft einen Fehler auslösen. Das Hinzufügen einer frei schwebenden Achse erfordert ein Positionsrechteck. Wenn Sie eine einzelne, die gesamte Abbildung ausfüllende Achse wünschen, verwenden Sie stattdessen add_subplot().
backend_wx.DEBUG_MSG#
backend_wx.DEBUG_MSG ist veraltet. Die wx-Backends verwenden jetzt normales Logging.
Colorbar.config_axis()#
Colorbar.config_axis() gilt als intern. Seine Verwendung ist veraltet.
NonUniformImage.is_grayscale und PcolorImage.is_grayscale#
Diese Attribute sind veraltet, im Einklang mit AxesImage.is_grayscale, das bereits in Matplotlib 2.0.0 entfernt wurde. (Beachten Sie, dass diese Attribute zuvor nur nach dem Rendern des Bildes verfügbar waren).
Parameter und Attribut den für mpl_toolkits.axisartist.angle_helper#
Für alle Locator-Klassen, die in mpl_toolkits.axisartist.angle_helper definiert sind, wurde der Parameter den in nbins umbenannt und das Attribut den zugunsten seines (bereits vorhandenen) Synonyms nbins als veraltet erklärt, um Konsistenz mit den Locator-Klassen in matplotlib.ticker zu gewährleisten.
backend_pgf.LatexManager.latex_stdin_utf8#
backend_pgf.LatexManager.latex wird jetzt mit encoding="utf-8" erstellt, sodass sein stdin-Attribut bereits UTF-8-kodiert ist; das Attribut latex_stdin_utf8 ist daher veraltet.
Flags mit "U" an cbook.to_filehandle und cbook.open_file_cm übergeben#
Bitte entfernen Sie "U" aus Flags, die an cbook.to_filehandle und cbook.open_file_cm übergeben werden. Dies steht im Einklang mit ihrer Entfernung aus open in Python 3.9.
PDF- und PS-Zeichenverfolgungs-Interna#
Die Attribute used_characters und die Methoden track_characters und merge_used_characters von RendererPdf, PdfFile und RendererPS sind veraltet.
Groß-/Kleinschreibungsunabhängige Cap- und Joinstyles#
Bitte übergeben Sie Cap-Styles ("miter", "round", "bevel") und Join-Styles ("butt", "round", "projecting") in Kleinbuchstaben.
Übergeben von Rohdaten an register_cmap()#
Das Übergeben von Rohdaten über die Parameter data und lut an matplotlib.cm.register_cmap() ist veraltet. Erstellen Sie stattdessen explizit ein LinearSegmentedColormap und übergeben Sie es über den cmap-Parameter: register_cmap(cmap=LinearSegmentedColormap(name, data, lut)).
DateFormatter.illegal_s#
Dieses Attribut wird nicht verwendet und ist veraltet.
widgets.TextBox.params_to_disable#
Dieses Attribut ist veraltet.
Rückgängigmachen der Veraltung der Schlüsselwortargumente *min, *max für set_x/y/zlim_3d()#
Diese Schlüsselwortargumente wurden in 3.0 zusammen mit den entsprechenden Parametern in set_xlim() / set_ylim() als veraltet erklärt. Die Veraltungen der 2D-Versionen wurden bereits in 3.1 rückgängig gemacht.
cbook.local_over_kwdict#
Diese Funktion ist veraltet. Verwenden Sie stattdessen cbook.normalize_kwargs.
Übergeben von singulären und pluralen colors, linewidths, linestyles an Axes.eventplot#
Das Übergeben von z.B. sowohl linewidth als auch linewidths wird in Zukunft einen TypeError auslösen.
Setzen von text.latex.preamble oder pdf.preamble rcParams auf Nicht-Strings#
Diese rcParams sollten auf String-Werte gesetzt werden. Die Unterstützung für None (was dem leeren String entspricht) und Listen von Strings (implizit mit Zeilenumbrüchen verbunden) ist veraltet.
Die Parameter norm und vmin/vmax sollten nicht gleichzeitig verwendet werden#
Das Übergeben der Parameter norm und vmin/vmax gleichzeitig an Funktionen, die Farbabbildungen verwenden, wie z.B. scatter() und imshow(), ist veraltet. Anstelle von norm=LogNorm(), vmin=min_val, vmax=max_val übergeben Sie norm=LogNorm(min_val, max_val). vmin und vmax sollten nur ohne Angabe von norm verwendet werden.
Wirkungslose Parameter von Figure.colorbar und matplotlib.colorbar.Colorbar#
Die Parameter cmap und norm von Figure.colorbar und matplotlib.colorbar.Colorbar haben keine Auswirkung, da sie immer von der Farbkarte und Norm des Mappables überschrieben werden; sie sind daher veraltet. Ebenso ist die Übergabe der Parameter alpha, boundaries, values, extend oder filled mit einem ContourSet-Mappable oder des alpha-Parameters mit einem Artist-Mappable veraltet, da der Mappable sie ebenfalls überschreiben würde.
Attribute args_key und exec_key von integrierten MovieWriters#
Diese Attribute sind veraltet.
Unbenutzte Parameter#
Die folgenden Parameter haben keine Auswirkung und sind veraltet
beliebige Schlüsselwortargumente für
StreamplotSetParameter quantize von
Path.cleaned()Parameter s von
AnnotationBbox.get_fontsize()Parameter label von
Tick
Übergeben von props an Shadow#
Der Parameter props von Shadow ist veraltet. Verwenden Sie stattdessen Schlüsselwortargumente.
Axes.update_datalim_bounds#
Diese Methode ist veraltet. Verwenden Sie stattdessen ax.dataLim.set(Bbox.union([ax.dataLim, bounds])).
{,Symmetrical}LogScale.{,Inverted}LogTransform#
LogScale.LogTransform, LogScale.InvertedLogTransform, SymmetricalScale.SymmetricalTransform und SymmetricalScale.InvertedSymmetricalTransform sind veraltet. Greifen Sie direkt auf die Transform-Klassen aus dem Modul scale zu.
TexManager.cachedir, TexManager.rgba_arrayd#
Verwenden Sie für ersteres stattdessen matplotlib.get_cachedir(); für letzteres gibt es keinen Ersatz.
Setzen des Pickradius von Line2D über Line2D.set_picker#
Das Setzen des Pickradius eines Line2D (d.h. der Toleranz für Pick-Events und Containment-Checks) über Line2D.set_picker ist veraltet. Verwenden Sie stattdessen Line2D.set_pickradius.
Line2D.set_picker setzt nicht mehr die benutzerdefinierte contains()-Prüfung des Künstlers.
Artist.set_contains, Artist.get_contains#
Das Setzen einer benutzerdefinierten Methode, die Artist.contains überschreibt, ist veraltet. Es gibt keinen Ersatz, aber Sie können Pick-Events weiterhin mit Artist.set_picker anpassen.
Colorbar-Methoden#
Die Methoden on_mappable_changed und update_bruteforce von Colorbar sind veraltet; beide können durch Aufrufe von update_normal ersetzt werden.
OldScalarFormatter, IndexFormatter und IndexDateFormatter#
Diese Formatter sind veraltet. Ihre Funktionalität kann mit z.B. FuncFormatter implementiert werden.
OldAutoLocator#
Dieser Ticker ist veraltet.
Parameter required, forbidden und allowed von cbook.normalize_kwargs#
Diese Parameter sind veraltet.
Die Umgebungsvariablen TTFPATH und AFMPATH#
Die Unterstützung für die (nicht dokumentierten) Umgebungsvariablen TTFPATH und AFMPATH ist veraltet. Zusätzliche Schriftarten können über matplotlib.font_manager.fontManager.addfont() registriert werden.
matplotlib.compat#
Dieses Modul ist veraltet.
matplotlib.backends.qt_editor.formsubplottool#
Dieses Modul ist veraltet. Verwenden Sie stattdessen matplotlib.backends.backend_qt5.SubplotToolQt.
AVConv Animations-Writer veraltet#
Die Klassen AVConvBase, AVConvWriter und AVConvFileWriter sowie die zugehörigen rcParams animation.avconv_path und animation.avconv_args sind veraltet.
Debian 8 (2015, EOL 06/2020) und Ubuntu 14.04 (EOL 04/2019) waren die letzten Versionen von Debian und Ubuntu, die avconv mitlieferten. Es ist weiterhin möglich, die Verwendung von avconv zu erzwingen, indem die ffmpeg-basierten Writer mit rcParams["animation.ffmpeg_path"] (Standard: 'ffmpeg') auf "avconv" gesetzt werden.
Log/Symlog-Skalenbasis, Ticks und nonpos-Spezifikation#
semilogx, semilogy, loglog, LogScale und SymmetricalLogScale verwendeten Schlüsselwortargumente, die von der Achsenorientierung abhingen ("basex" vs. "basey", "subsx" vs. "subsy", "nonposx" vs. "nonposy"); diese Parameternamen sind nun zugunsten von "base", "subs", "nonpositive" veraltet. Diese Veraltung betrifft auch z.B. ax.set_yscale("log", basey=...), das nun als ax.set_yscale("log", base=...) geschrieben werden muss.
Die Änderung von "nonpos" zu "nonpositive" betrifft auch LogTransform, InvertedLogTransform, SymmetricalLogTransform usw.
Um für eine loglog-Darstellung unterschiedliche Basen für die x-Achse und die y-Achse zu verwenden, verwenden Sie z.B. ax.set_xscale("log", base=10); ax.set_yscale("log", base=2).
DraggableBase.artist_picker#
Diese Methode ist veraltet. Wenn Sie sie zuvor in einer Unterklasse neu implementiert haben, setzen Sie stattdessen den Picker des Künstlers mit Artist.set_picker.
Parameter und Attribut clear_temp von FileMovieWriter#
Der Parameter und das Attribut clear_temp von FileMovieWriter sind veraltet. In Zukunft werden Dateien in einem temporären Verzeichnis (mit frame_prefix=None, dem Standard) gelöscht; Dateien, die an einem anderen Ort platziert werden, nicht.
Veraltete rcParams-Validatoren#
Die folgenden Validatoren, definiert in rcsetup, sind veraltet: validate_fontset, validate_mathtext_default, validate_alignment, validate_svg_fonttype, validate_pgf_texsystem, validate_movie_frame_fmt, validate_axis_locator, validate_movie_html_fmt, validate_grid_axis, validate_axes_titlelocation, validate_toolbar, validate_ps_papersize, validate_legend_loc, validate_bool_maybe_none, validate_hinting, validate_movie_writer, validate_webagg_address, validate_nseq_float, validate_nseq_int. Um zu testen, ob ein rcParam-Wert akzeptabel wäre, kann man z.B. testen: rc = RcParams(); rc[k] = v löst eine Ausnahme aus.
Strengere rcParam-Validierung#
rcParams["axes.axisbelow"] (Standard: 'line') normalisiert derzeit alle Zeichenketten, die mit "line" beginnen (unabhängig von Groß-/Kleinschreibung), auf die Option "line". Dies ist veraltet; in einer zukünftigen Version wird nur die exakte Zeichenkette "line" (Groß-/Kleinschreibung beachten) unterstützt.
add_subplot() validiert seine Eingaben#
Insbesondere für add_subplot(rows, cols, index) müssen alle Parameter ganzzahlig sein. Zuvor wurden Zeichenketten und Fließkommazahlen akzeptiert und in Integer umgewandelt. Dies wird nun eine Deprecation-Warnung ausgeben.
matplotlib.test(recursionlimit=...)#
Der Parameter recursionlimit von matplotlib.test ist veraltet.
Mathtext-Glues#
Der Parameter copy von mathtext.Glue ist veraltet (die zugrundeliegende Glue-Spezifikation ist nun unveränderlich). mathtext.GlueSpec ist veraltet.
Signaturen von Artist.draw und matplotlib.axes.Axes.draw#
Der Parameter inframe für matplotlib.axes.Axes.draw ist veraltet. Verwenden Sie stattdessen Axes.redraw_in_frame.
Das Nicht-Übergeben des Parameters renderer an matplotlib.axes.Axes.draw ist veraltet. Verwenden Sie stattdessen axes.draw_artist(axes).
Diese Änderungen machen die Signatur der Methode draw (artist.draw(renderer)) über alle Artists hinweg konsistent; daher sind zusätzliche Parameter für Artist.draw veraltet.
DraggableBase.on_motion_blit#
Diese Methode ist veraltet. DraggableBase.on_motion behandelt nun sowohl die Blitting- als auch die Nicht-Blitting-Fälle.
Übergabe des Dash-Offsets als None#
Eine feine Steuerung von Dash-Mustern kann durch Übergabe eines Paares (offset, (on-length, off-length, on-length, off-length, ...)) als Linienstil-Eigenschaft von Line2D und LineCollection erreicht werden. Zuvor akzeptierten bestimmte APIs offset = None als Synonym für offset = 0, dies war jedoch nie universell implementiert, z.B. für Vektorausgaben. Die Unterstützung für offset = None ist veraltet, setzen Sie den Offset stattdessen auf 0.
RendererCairo.fontweights, RendererCairo.fontangles#
... sind veraltet.
autofmt_xdate(which=None)#
Dies ist veraltet, verwenden Sie stattdessen das explizitere Synonym which="major".
JPEG-Optionen#
Die Schlüsselwortargumente quality, optimize und progressive für savefig, die nur beim Speichern in JPEG verwendet wurden, sind veraltet. Der rcParam savefig.jpeg_quality ist ebenfalls veraltet.
Solche Optionen sollten nun direkt an Pillow übergeben werden, indem savefig(..., pil_kwargs={"quality": ..., "optimize": ..., "progressive": ...}) verwendet wird.
dviread.Encoding#
Diese Klasse war (größtenteils) fehlerhaft und ist veraltet.
Achsen- und Locator- pan und zoom#
Die ungenutzten Methoden pan und zoom von Axis und Locator sind veraltet. Panning und Zoom werden nun über die Methoden start_pan, drag_pan und end_pan von Axes implementiert.
Übergabe von None an verschiedene Axes-Subclass-Factories#
Die Unterstützung für die Übergabe von None als Basisklasse an axes.subplot_class_factory, axes_grid1.parasite_axes.host_axes_class_factory, axes_grid1.parasite_axes.host_subplot_class_factory, axes_grid1.parasite_axes.parasite_axes_class_factory und axes_grid1.parasite_axes.parasite_axes_auxtrans_class_factory ist veraltet. Übergeben Sie stattdessen explizit die korrekte Basisklasse Axes.
axes_rgb#
In mpl_toolkits.axes_grid1.axes_rgb ist imshow_rgb veraltet (verwenden Sie stattdessen ax.imshow(np.dstack([r, g, b]))); RGBAxesBase ist veraltet (verwenden Sie stattdessen RGBAxes); RGBAxes.add_RGB_to_figure ist veraltet (es war ein interner Helfer).
Substitution.from_params#
Diese Methode ist veraltet. Wenn nötig, weisen Sie die Attribute params des Substitution-Objekts direkt zu.
Bereinigung des PGF-Backends#
Der Parameter dummy von RendererPgf ist veraltet.
GraphicsContextPgf ist veraltet (verwenden Sie stattdessen GraphicsContextBase).
Methode set_factor von mpl_toolkits.axisartist Locators#
Die Methode set_factor von mpl_toolkits.axisartist Locators (die sich von "Standard"-Matplotlib-Tick-Locators unterscheiden) ist veraltet.
widgets.SubplotTool Callbacks und Achsen#
Die Methoden funcleft, funcright, funcbottom, functop, funcwspace und funchspace von widgets.SubplotTool sind veraltet.
Die Attribute axleft, axright, axbottom, axtop, axwspace und axhspace von widgets.SubplotTool sind veraltet. Greifen Sie bei Bedarf auf das Attribut ax des entsprechenden Schiebereglers zu.
Mathtext Glue Hilfsklassen#
Die Klassen Fil, Fill, Filll, NegFil, NegFill, NegFilll und SsGlue im Modul matplotlib.mathtext sind veraltet. Als Alternative können Glue-Instanzen direkt mit Glue("fil") usw. konstruiert werden.
FigureCanvasGTK3._renderer_init#
Das Überschreiben dieser Methode zur Initialisierung von Renderern für GTK3-Leinwände ist veraltet. Stattdessen sollte der Renderer im __init__-Methode der Unterklasse initialisiert werden (die die __init__ der Basisklasse wie erforderlich aufrufen sollte). Um die Abwärtskompatibilität mit früheren Versionen von Matplotlib (die das Überschreiben von _renderer_init erforderten) zu gewährleisten, kann eine vollständig leere Implementierung (def _renderer_init(self): pass) beibehalten werden und löst keine Deprecation-Warnung aus.
Pfad-Helfer in bezier#
bezier.make_path_regular ist veraltet. Verwenden Sie stattdessen Path.cleaned() (oder Path.cleaned(curves=True) usw.), aber beachten Sie, dass diese Methoden einen STOP-Code am Ende des Pfades hinzufügen.
bezier.concatenate_paths ist veraltet. Verwenden Sie stattdessen Path.make_compound_path().
rcParam animation.html_args#
Der ungenutzte rcParam animation.html_args und das Attribut animation.HTMLWriter.args_key sind veraltet.
rcParam text.latex.preview#
Dieser rcParam, der die Verwendung des preview.sty LaTeX-Pakets zur Ausrichtung von TeX-String-Baselines steuerte, ist veraltet, da Matplotlibs eigener DVI-Parser nun Baselines genauso gut wie preview.sty berechnet.
SubplotSpec.get_rows_columns#
Diese Methode ist veraltet. Verwenden Sie stattdessen die Eigenschaften GridSpec.nrows, GridSpec.ncols, SubplotSpec.rowspan und SubplotSpec.colspan.
Qt4-basierte Backends#
Die Backends qt4agg und qt4cairo sind veraltet. Qt4 hat 2015 sein Lebensende erreicht und es gibt keine Veröffentlichungen für neuere Python-Versionen. Bitte erwägen Sie den Umstieg auf Qt5.
Parameter fontdict und minor von Axes.set_xticklabels und Axes.set_yticklabels werden Keyword-only#
Alle Parameter von Figure.subplots außer nrows und ncols werden Keyword-only#
Dies vermeidet die Eingabe z.B. von subplots(1, 1, 1), wenn subplot(1, 1, 1) gemeint ist, aber tatsächlich subplots(1, 1, sharex=1) erhalten wird.
RendererWx.get_gc#
Diese Methode ist veraltet. Greifen Sie stattdessen direkt auf das Attribut gc zu.
Parameter add_all in axes_grid#
Der Parameter add_all von axes_grid1.axes_grid.Grid, axes_grid1.axes_grid.ImageGrid, axes_grid1.axes_rgb.make_rgb_axes und axes_grid1.axes_rgb.RGBAxes ist veraltet. Achsen werden nun immer zur übergeordneten Figur hinzugefügt, können aber später mit ax.remove() entfernt werden.
BboxBase.inverse_transformed#
BboxBase.inverse_transformed ist veraltet (rufen Sie stattdessen BboxBase.transformed auf dem inverted()-Transform zurück).
orientation von eventplot() und EventCollection#
Das Setzen der orientation von eventplot() oder EventCollection auf "none" oder None ist veraltet; setzen Sie es stattdessen auf "horizontal". Darüber hinaus werden die beiden Orientierungen ("horizontal" und "vertical") in Zukunft case-sensitiv sein.
Der Parameter minor von Axis.get_ticklocs wird Keyword-only#
Das positionsgebundene Übergeben dieses Arguments ist veraltet.
Case-insensitive Eigenschaften#
Die Normalisierung von Groß- oder gemischtschreibigen Eigenschaftsnamen zu Kleinbuchstaben in Artist.set und Artist.update ist veraltet. In Zukunft werden die Eigenschaftsnamen so übergeben, wie sie sind, was es ermöglicht, Namen wie patchA oder UVC zu übergeben.
ContourSet.ax, Quiver.ax#
Diese Attribute sind zugunsten von ContourSet.axes und Quiver.axes veraltet, um die Konsistenz mit anderen Artists zu gewährleisten.
Locator.refresh() und zugehörige Methoden#
Locator.refresh() ist veraltet. Diese Methode wurde an bestimmten Stellen aufgerufen, um Locators ihren internen Zustand aktualisieren zu lassen, typischerweise basierend auf den Achsenlimits. Locators sollten nun bei Aufruf immer die Achsenlimits konsultieren, falls erforderlich.
Die zugehörigen Hilfsmethoden NavigationToolbar2.draw() und ToolViewsPositions.refresh_locators() sind veraltet und sollten durch Aufrufe von draw_idle() auf der entsprechenden Leinwand ersetzt werden.
ScalarMappable Prüfer#
Die Methoden add_checker und check_update sowie das Attribut update_dict von ScalarMappable sind veraltet.
Parameter von pyplot.tight_layout und ColorbarBase werden Keyword-only#
Alle Parameter von pyplot.tight_layout und alle Parameter von ColorbarBase mit Ausnahme des ersten (ax) werden Keyword-only, konsistent mit Figure.tight_layout und Colorbar, bzw.
Radius und startangle von Axes.pie#
Das Übergeben von None als radius oder startangle von Axes.pie ist veraltet; verwenden Sie stattdessen die expliziten Standardwerte 1 bzw. 0.
AxisArtist.dpi_transform#
... ist veraltet. Skalieren Sie Figure.dpi_scale_trans um 1/72, um denselben Effekt zu erzielen.
Eigenschaft offset_position von Collection#
Die Eigenschaft offset_position von Collection ist veraltet. In Zukunft verhalten sich Collections immer so, als wäre offset_position auf "screen" (der Standardwert) gesetzt.
Die Unterstützung für die Übergabe von offset_position="data" an die draw_path_collection aller Renderer-Klassen ist veraltet.
transforms.AffineDeltaTransform kann als Ersatz verwendet werden. Diese API ist experimentell und kann sich in Zukunft ändern.
testing.compare.make_external_conversion_command#
... ist veraltet.
epoch2num und num2epoch sind veraltet#
Diese sind ungenutzt und können leicht durch andere Datums-Tools reproduziert werden. get_epoch gibt Matplotlibs Epoche zurück.
Attribute von axes_grid1.CbarAxes#
Die Attribute cbid und locator sind veraltet. Verwenden Sie mappable.colorbar_cid und colorbar.locator, wie bei Standard-Colorbars.
qt_compat.is_pyqt5#
Diese Funktion ist im Hinblick auf die zukünftige Veröffentlichung von PyQt6 veraltet. Die Qt-Version kann mit QtCore.qVersion() überprüft werden.
Neuordnung von Parametern durch Artist.set#
In einer zukünftigen Version werden die Artist-Eigenschaften von Artist.set in der Reihenfolge angewendet, in der sie übergeben werden. Dies betrifft nur die Interaktion zwischen den Eigenschaften color, edgecolor, facecolor und, für Collections, alpha: Die Eigenschaft color muss nun zuerst übergeben werden, um die anderen Eigenschaften nicht zu überschreiben. Dies ist konsistent mit z.B. Artist.update, das die an es übergebenen Eigenschaften nicht neu geordnet hat.
Übergabe mehrerer Schlüssel als einzelne durch Kommas getrennte Zeichenkette oder mehrerer Argumente an ToolManager.update_keymap#
Dies ist veraltet; übergeben Sie Schlüssel als Liste von Zeichenketten.
Statusleistenklassen und Attribute#
Das Attribut statusbar von FigureManagerBase, StatusbarBase und alle seine Unterklassen sowie StatusBarWx sind veraltet, da Nachrichten nun stattdessen in der Toolbar angezeigt werden.
ismath Parameter von draw_tex#
Der ismath-Parameter der draw_tex-Methode aller Renderer-Klassen ist veraltet (ein Aufruf von draw_tex – nicht zu verwechseln mit draw_text! – bedeutet, dass die gesamte Zeichenkette ohnehin an die usetex-Maschinerie übergeben wird). Ebenso wird die Textmaschinerie den ismath-Parameter beim Aufruf von draw_tex nicht mehr übergeben (dies sollte nur für Backend-Implementierer relevant sein).
Die Übergabe von ismath="TeX!" an RendererAgg.get_text_width_height_descent ist veraltet. Übergeben Sie stattdessen ismath="TeX", konsistent mit anderen Low-Level-APIs, die die Werte True, False und "TeX" für ismath unterstützen.
matplotlib.ttconv#
Dieses Modul ist veraltet.
Strengere PDF-Metadaten-Schlüssel in PGF#
Das Speichern von Metadaten in PDF mit dem PGF-Backend normalisiert derzeit alle Schlüssel in Kleinbuchstaben, im Gegensatz zum PDF-Backend, das nur die kanonische Groß-/Kleinschreibung akzeptiert. Dies ist veraltet; in einer zukünftigen Version werden nur noch die kanonisch geschriebenen Schlüssel akzeptiert, die in der PDF-Spezifikation (und der Dokumentation von PdfPages) aufgeführt sind.
Qt-Modifikatortasten#
Die globalen Variablen MODIFIER_KEYS, SUPER, ALT, CTRL und SHIFT der Module matplotlib.backends.backend_qt4agg, matplotlib.backends.backend_qt4cairo, matplotlib.backends.backend_qt5agg und matplotlib.backends.backend_qt5cairo sind veraltet.
TexManager#
Die Attribute TexManager.serif, TexManager.sans_serif, TexManager.cursive und TexManager.monospace sind veraltet.
Entfernungen#
Die folgenden veralteten APIs wurden entfernt
Module#
backends.qt_editor.formlayout(verwenden Sie stattdessen das Modul `formlayout`, das auf PyPI verfügbar ist).
Klassen, Methoden und Attribute#
artist.Artist.anameProperty (kein Ersatz)axis.Axis.iter_ticks(kein Ersatz)Unterstützung für benutzerdefinierte Backends, die keine
backend_bases.GraphicsContextBase.set_hatch_color-Methode bereitstellenbackend_bases.RendererBase.strip_math()(verwenden Sie stattdessencbook.strip_math())backend_wx.debug_on_error()(kein Ersatz)backend_wx.raise_msg_to_str()(kein Ersatz)backend_wx.fake_stderr(kein Ersatz)backend_wx.MenuButtonWx(kein Ersatz)backend_wx.PrintoutWx(kein Ersatz)_backend_tk.NavigationToolbar2Tk.set_active()(kein Ersatz)backend_ps.PsBackendHelper.gs_exeProperty (kein Ersatz)backend_ps.PsBackendHelper.gs_versionProperty (kein Ersatz)backend_ps.PsBackendHelper.supports_ps2writeProperty (kein Ersatz)backend_ps.RendererPS.afmfontdProperty (kein Ersatz)backend_ps.GraphicsContextPS.shouldstrokeProperty (kein Ersatz)backend_gtk3.FileChooserDialog(kein Ersatz)backend_gtk3.SaveFigureGTK3.get_filechooser()(kein Ersatz)backend_gtk3.NavigationToolbar2GTK3.get_filechooser()(kein Ersatz)backend_gtk3cairo.FigureManagerGTK3Cairo(verwenden Sie stattdessenbackend_gtk3.FigureManagerGTK3)backend_pdf.RendererPdf.afm_font_cacheProperty (kein Ersatz)backend_pgf.LatexManagerFactory(kein Ersatz)backend_qt5.NavigationToolbar2QT.buttonsProperty (kein Ersatz)backend_qt5.NavigationToolbar2QT.adj_windowProperty (kein Ersatz)bezier.find_r_to_boundary_of_closedpath()(kein Ersatz)cbook.dedent()(verwenden Sie stattdesseninspect.cleandoc)cbook.get_label()(kein Ersatz)cbook.is_hashable()(verwenden Sie stattdessenisinstance(..., collections.abc.Hashable))cbook.iterable()(verwenden Sie stattdessennumpy.iterable())cbook.safezip()(kein Ersatz)colorbar.ColorbarBase.get_cmap(verwenden Sie stattdessenScalarMappable.get_cmap)colorbar.ColorbarBase.set_cmap(verwenden Sie stattdessenScalarMappable.set_cmap)colorbar.ColorbarBase.get_clim(verwenden Sie stattdessenScalarMappable.get_clim)colorbar.ColorbarBase.set_clim(verwenden Sie stattdessenScalarMappable.set_clim)colorbar.ColorbarBase.set_norm(verwenden Sie stattdessenScalarMappable.set_norm)dates.seconds()(kein Ersatz)dates.minutes()(kein Ersatz)dates.hours()(kein Ersatz)dates.weeks()(kein Ersatz)dates.strpdate2numunddates.bytespdate2num(verwenden Sie stattdessentime.strptimeoderdateutil.parser.parseoderdates.datestr2num)docstring.Appender(kein Ersatz)docstring.dedent()(verwenden Sie stattdesseninspect.getdoc)docstring.copy_dedent()(verwenden Sie stattdessendocstring.copy()undinspect.getdoc)font_manager.OSXInstalledFonts()(kein Ersatz)image.BboxImage.interp_at_nativeProperty (kein Ersatz)lines.Line2D.verticalOffsetProperty (kein Ersatz)matplotlib.checkdep_dvipng(kein Ersatz)matplotlib.checkdep_ghostscript(kein Ersatz)matplotlib.checkdep_pdftops(kein Ersatz)matplotlib.checkdep_inkscape(kein Ersatz)matplotlib.get_py2exe_datafiles(kein Ersatz)matplotlib.tk_window_focus(verwenden Sie stattdessenrcParams['tk.window_focus'])mlab.demean()(verwenden Sie stattdessenmlab.detrend_mean())path.get_paths_extents()(verwenden Sie stattdessenpath.get_path_collection_extents())path.Path.has_nonfinite()(verwenden Sie stattdessennot np.isfinite(self.vertices).all())projections.process_projection_requirements()(kein Ersatz)pyplot.plotfile()(Laden Sie stattdessen die Daten mitpandas.read_csvodernumpy.loadtxtoder ähnlichem und verwenden Sie normale pyplot-Funktionen, um die geladenen Daten zu plotten.)quiver.Quiver.color()(verwenden Sie stattdessenQuiver.get_facecolor())quiver.Quiver.keyvecProperty (kein Ersatz)quiver.Quiver.keytextProperty (kein Ersatz)rcsetup.validate_qt4()(kein Ersatz)rcsetup.validate_qt5()(kein Ersatz)rcsetup.validate_verbose()(kein Ersatz)rcsetup.ValidateInterval(kein Ersatz)scale.LogTransformBase(verwenden Sie stattdessenscale.LogTransform)scale.InvertedLogTransformBase(verwenden Sie stattdessenscale.InvertedLogTransform)scale.Log10Transform(verwenden Sie stattdessenscale.LogTransform)scale.InvertedLog10Transform(verwenden Sie stattdessenscale.InvertedLogTransform)scale.Log2Transform(verwenden Sie stattdessenscale.LogTransform)scale.InvertedLog2Transform(verwenden Sie stattdessenscale.InvertedLogTransform)scale.NaturalLogTransform(verwenden Sie stattdessenscale.LogTransform)scale.InvertedNaturalLogTransform(verwenden Sie stattdessenscale.InvertedLogTransform)scale.get_scale_docs()(kein Ersatz)sphinxext.plot_directive.plot_directive()(verwenden Sie stattdessen die KlassePlotDirective)sphinxext.mathmpl.math_directive()(verwenden Sie stattdessen die KlasseMathDirective)spines.Spine.is_frame_like()(kein Ersatz)testing.decorators.switch_backend()(verwenden Sie stattdessen den Decorator@pytest.mark.backend)text.Text.is_math_text()(verwenden Sie stattdessencbook.is_math_text())text.TextWithDash()(verwenden Sie stattdessentext.Annotation)textpath.TextPath.is_math_text()(verwenden Sie stattdessencbook.is_math_text())textpath.TextPath.text_get_vertices_codes()(verwenden Sie stattdessentextpath.text_to_path.get_text_path())textpath.TextToPath.glyph_to_path()(verwenden Sie stattdessenfont.get_path()und manuelle Übersetzung der Eckpunkte)ticker.OldScalarFormatter.pprint_val()(kein Ersatz)ticker.ScalarFormatter.pprint_val()(kein Ersatz)ticker.LogFormatter.pprint_val()(kein Ersatz)ticker.decade_down()(kein Ersatz)ticker.decade_up()(kein Ersatz)TickPropertiesgridOn,tick1On,tick2On,label1On,label2On(verwenden Sie stattdessenset_visible()/get_visible()aufTick.gridline,Tick.tick1line,Tick.tick2line,Tick.label1,Tick.label2)widgets.SpanSelector.buttonDownProperty (kein Ersatz)mplot3d.proj3d.line2d()(kein Ersatz)mplot3d.proj3d.line2d_dist()(kein Ersatz)mplot3d.proj3d.line2d_seg_dist()(kein Ersatz)mplot3d.proj3d.mod()(verwenden Sie stattdessennumpy.linalg.norm)mplot3d.proj3d.proj_transform_vec()(kein Ersatz)mplot3d.proj3d.proj_transform_vec_clip()(kein Ersatz)mplot3d.proj3d.vec_pad_ones()(kein Ersatz)mplot3d.proj3d.proj_trans_clip_points()(kein Ersatz)mplot3d.art3d.norm_angle()(kein Ersatz)mplot3d.art3d.norm_text_angle()(kein Ersatz)mplot3d.art3d.path_to_3d_segment()(kein Ersatz)mplot3d.art3d.paths_to_3d_segments()(kein Ersatz)mplot3d.art3d.path_to_3d_segment_with_codes()(kein Ersatz)mplot3d.art3d.paths_to_3d_segments_with_codes()(kein Ersatz)mplot3d.art3d.get_patch_verts()(kein Ersatz)mplot3d.art3d.get_colors()(kein Ersatz)mplot3d.art3d.zalpha()(kein Ersatz)mplot3d.axis3d.get_flip_min_max()(kein Ersatz)mplot3d.axis3d.Axis.get_tick_positions()(kein Ersatz)axisartist.axis_artist.UnimplementedException(kein Ersatz)axisartist.axislines.SimpleChainedObjects(verwenden Sie stattdessenaxis_grid1.mpl_axes.SimpleChainedObjects)axisartist.axislines.Axes.AxisDict(verwenden Sie stattdessenaxis_grid1.mpl_axes.Axes.AxisDict)
Argumente#
Axes.text()/pyplot.text()unterstützen den Parameterwithdashnicht mehr. Verwenden Sie stattdessenAxes.annotate()undpyplot.annotate().Der erste Parameter von
matplotlib.usewurde vonarginbackendumbenannt (nur relevant, wenn Sie per Schlüsselwort übergeben).Der Parameter
warnvonmatplotlib.usewurde entfernt. Ein Fehlschlag beim Wechseln des Backends löst nun immer einenImportErroraus, wennforcegesetzt ist; fangen Sie diesen Fehler bei Bedarf ab.Alle Parameter von
matplotlib.useaußer dem ersten sind nun nur noch als Schlüsselwortargumente zulässig.Die ungenutzten Parameter
shapeundimlimvonimshow()wurden entfernt. Alle Parameter jenseits vonextentsind nun nur noch als Schlüsselwortargumente zulässig.Der ungenutzte Parameter
interp_at_nativevonBboxImagewurde entfernt.Der Parameter
usetexvonTextToPath.get_text_pathwurde entfernt. Verwenden Sie stattdessenismath='TeX'.Der Parameter
blockvonshow()ist nun nur noch als Schlüsselwortargument zulässig, und beliebige Argumente oder Schlüsselwortargumente werden nicht mehr akzeptiert.Der Parameter
frameonvonFigure.savefigwurde entfernt. Verwenden Siefacecolor="none", um einen transparenten Hintergrund zu erhalten.Die Übergabe eines
wx.EvtHandlerals erstes Argument anbackend_wx.TimerWxwird nicht mehr unterstützt; die Signatur vonTimerWxist nun konsistent mitTimerBase.Der Parameter
manage_xticksvonboxplotundbxpwurde inmanage_ticksumbenannt.Der Parameter
normedvonhist2dwurde indensityumbenannt.Der Parameter
svonAnnotationwurde intextumbenannt.Für alle Funktionen in
bezier, die einentolerance-Parameter unterstützten, wurde dieser Parameter intoleranceumbenannt.axis("normal")wird nicht mehr unterstützt. Verwenden Sie stattdessen das Äquivalentaxis("auto").axis()akzeptiert keine beliebigen Schlüsselwortargumente mehr.Axis.set_ticklabels()akzeptiert außerticklabelskeine beliebigen Positionsargumente mehr.mpl_toolkits.mplot3d.art3d.Poly3DCollection.set_zsortakzeptiert den WertTruenicht mehr. Übergeben Sie stattdessen den äquivalenten Wert 'average'.AnchoredTextakzeptiert keine Schlüsselwortargumentehorizontalalignmentoderverticalalignmentmehr.ConnectionPatchakzeptiert die Schlüsselwortargumentearrow_transmuterundconnectornicht mehr, die seit Version 3.0 keine Funktion hatten.FancyArrowPatchakzeptiert die Schlüsselwortargumentearrow_transmuterundconnectornicht mehr, die seit Version 3.0 keine Funktion hatten.TextPathakzeptiert keine beliebigen Positions- oder Schlüsselwortargumente mehr.MaxNLocator.set_params()akzeptiert keine beliebigen Schlüsselwortargumente mehr.pieakzeptiert keine nicht-1D-Eingaben mehr, die zusammengestaucht werden; übergeben Sie 1D-Eingaben an das Argumentx.Die Übergabe von Fehler-Arrays mit der Form (n, 1) an
Axes.errorbar()wird nicht mehr unterstützt; übergeben Sie stattdessen ein 1D-Array.
rcParams#
Der rcParam
text.latex.unicodewurde ohne Ersatz entfernt. Matplotlib unterstützt nun immer Unicode in usetex.Der rcParam
savefig.frameonwurde entfernt. Setzen SiercParams["savefig.facecolor"](Standard:'auto') auf "none", um einen transparenten Hintergrund zu erhalten.Die rcParams
pgf.debug,verbose.fileoundverbose.verbose.level, die keine Auswirkung hatten, wurden entfernt.Die Unterstützung für das Setzen von
rcParams["mathtext.default"](Standard:'it') auf "circled" wurde entfernt.
Umgebungsvariablen#
MATPLOTLIBDATA(kein Ersatz).
mathtext#
Der Befehl
\stackrel(der sich anders verhielt als seine LaTeX-Version) wurde entfernt. Verwenden Sie stattdessen\genfrac.Der Befehl
\mathcircledwurde entfernt. Verwenden Sie stattdessen direkt Unicode-Zeichen wie'\N{CIRCLED LATIN CAPITAL LETTER A}'.
Entwicklungsänderungen
Matplotlib erfordert nun numpy>=1.15#
Matplotlib verwendet nun Pillow zum Speichern und Lesen von PNGs#
Der integrierte PNG-Encoder und -Decoder wurde entfernt, und Pillow ist nun eine Abhängigkeit. Beachten Sie, dass Pillow beim Lesen von 16-Bit-RGB(A)-Bildern diese auf 8-Bit-Präzision abschneidet, während der alte integrierte Decoder die volle Präzision beibehielt.
Das veraltete wx-Backend (nicht wxagg!) verwendet nun immer die integrierte JPEG- und TIFF-Unterstützung von wx, anstatt sich auf Pillow zum Schreiben dieser Formate zu verlassen; dieses Verhalten ist konsistent mit der PNG-Ausgabe von wx.