matplotlib.cbook#

Eine Sammlung von Hilfsfunktionen und Klassen. Ursprünglich stammten viele (aber nicht alle) aus dem Python Cookbook – daher der Name cbook.

class matplotlib.cbook.CallbackRegistry(exception_handler=<function _exception_printer>, *, signals=None)[Quelle]#

Bases: object

Behandelt die Registrierung, Verarbeitung, Blockierung und Trennung für eine Reihe von Signalen und Rückrufen.

>>> def oneat(x):
...     print('eat', x)
>>> def ondrink(x):
...     print('drink', x)
>>> from matplotlib.cbook import CallbackRegistry
>>> callbacks = CallbackRegistry()
>>> id_eat = callbacks.connect('eat', oneat)
>>> id_drink = callbacks.connect('drink', ondrink)
>>> callbacks.process('drink', 123)
drink 123
>>> callbacks.process('eat', 456)
eat 456
>>> callbacks.process('be merry', 456)   # nothing will be called
>>> callbacks.disconnect(id_eat)
>>> callbacks.process('eat', 456)        # nothing will be called
>>> with callbacks.blocked(signal='drink'):
...     callbacks.process('drink', 123)  # nothing will be called
>>> callbacks.process('drink', 123)
drink 123

In der Praxis sollte man immer alle Rückrufe trennen, wenn sie nicht mehr benötigt werden, um hängende Referenzen (und damit Speicherlecks) zu vermeiden. Echter Code in Matplotlib tut dies jedoch selten, und aufgrund seines Designs ist es ziemlich schwierig, solche Codezeilen unterzubringen. Um dies zu umgehen und diese Art von Speicherlecks zu verhindern, speichern wir stattdessen nur schwache Referenzen auf gebundene Methoden, sodass die CallbackRegistry die Zielobjekte nicht am Leben hält, wenn sie sterben sollen.

Parameter:
exception_handlercallable, optional

Wenn nicht None, muss exception_handler eine Funktion sein, die eine Exception als einzelnen Parameter entgegennimmt. Sie wird mit jeder Exception aufgerufen, die von den Rückrufen während CallbackRegistry.process ausgelöst wird, und kann die Ausnahme entweder erneut auslösen oder sie auf andere Weise behandeln.

Der Standardhandler druckt die Ausnahme (mit traceback.print_exc), wenn eine interaktive Ereignisschleife läuft; er löst die Ausnahme erneut aus, wenn keine interaktive Ereignisschleife läuft.

signalslist, optional

Wenn nicht None, ist signals eine Liste von Signalen, die diese Registry behandelt: der Versuch, ein Signal zu verarbeiten oder sich mit einem Signal zu verbinden, das nicht in der Liste enthalten ist, löst einen ValueError aus. Der Standardwert None schränkt die behandelten Signale nicht ein.

blocked(*, signal=None)[Quelle]#

Blockiert die Verarbeitung von Callback-Signalen.

Ein Kontextmanager, um Callback-Signale temporär von der Verarbeitung durch die registrierten Listener zu blockieren/deaktivieren.

Parameter:
signalstr, optional

Das zu blockierende Callback-Signal. Der Standardwert ist, alle Signale zu blockieren.

connect(signal, func)[Quelle]#

Registriert func, um aufgerufen zu werden, wenn das Signal signal generiert wird.

disconnect(cid)[Quelle]#

Trennt den mit der Callback-ID cid registrierten Rückruf.

Es wird kein Fehler ausgelöst, wenn ein solcher Rückruf nicht existiert.

process(s, *args, **kwargs)[Quelle]#

Verarbeitet Signal s.

Alle Funktionen, die für den Empfang von Rückrufen auf s registriert sind, werden mit *args und **kwargs aufgerufen.

class matplotlib.cbook.Grouper(init=())[Quelle]#

Bases: object

Eine Disjoint-Set-Datenstruktur.

Objekte können mit join() verbunden werden, auf Verbundenheit getestet werden mit joined(), und alle disjunkten Mengen können abgerufen werden, indem das Objekt als Iterator verwendet wird.

Die verbundenen Objekte müssen hashbar und schwach referenzierbar sein.

Beispiele

>>> from matplotlib.cbook import Grouper
>>> class Foo:
...     def __init__(self, s):
...         self.s = s
...     def __repr__(self):
...         return self.s
...
>>> a, b, c, d, e, f = [Foo(x) for x in 'abcdef']
>>> grp = Grouper()
>>> grp.join(a, b)
>>> grp.join(b, c)
>>> grp.join(d, e)
>>> list(grp)
[[a, b, c], [d, e]]
>>> grp.joined(a, b)
True
>>> grp.joined(a, c)
True
>>> grp.joined(a, d)
False
get_siblings(a)[Quelle]#

Gibt alle mit a verbundenen Elemente zurück, einschließlich a selbst.

join(a, *args)[Quelle]#

Verbindet die gegebenen Argumente zur selben Menge. Akzeptiert ein oder mehrere Argumente.

joined(a, b)[Quelle]#

Gibt zurück, ob a und b Mitglieder derselben Menge sind.

remove(a)[Quelle]#

Entfernt a aus dem Grouper, tut nichts, wenn es nicht vorhanden ist.

class matplotlib.cbook.GrouperView(grouper)[Quelle]#

Bases: object

Unveränderliche Ansicht über einen Grouper.

get_siblings(a)[Quelle]#

Gibt alle mit a verbundenen Elemente zurück, einschließlich a selbst.

joined(a, b)[Quelle]#

Gibt zurück, ob a und b Mitglieder derselben Menge sind.

matplotlib.cbook.boxplot_stats(X, whis=1.5, bootstrap=None, labels=None, autorange=False)[Quelle]#

Gibt eine Liste von Wörterbüchern mit Statistiken zurück, die zum Zeichnen einer Reihe von Box-Whisker-Plots mit bxp verwendet werden.

Parameter:
Xarray-ähnlich

Die Daten, die in den Boxplots dargestellt werden. Sollte 2 oder weniger Dimensionen haben.

whisfloat oder (float, float), Standard: 1.5

Die Position der Whiskers.

Wenn ein Float, ist der untere Whisker am niedrigsten Datum über Q1 - whis*(Q3-Q1), und der obere Whisker am höchsten Datum unter Q3 + whis*(Q3-Q1), wobei Q1 und Q3 das erste und dritte Quartil sind. Der Standardwert von whis = 1.5 entspricht Tukeys ursprünglicher Definition von Boxplots.

Wenn ein Paar von Floats, geben sie die Perzentile an, bei denen die Whiskers gezeichnet werden sollen (z.B. (5, 95)). Insbesondere führt die Einstellung auf (0, 100) dazu, dass die Whiskers den gesamten Datenbereich abdecken.

Im Sonderfall, dass Q1 == Q3, wird whis automatisch auf (0, 100) gesetzt (gesamter Datenbereich abdecken), wenn autorange True ist.

Über die Whiskers hinaus werden Daten als Ausreißer betrachtet und als einzelne Punkte dargestellt.

bootstrapint, optional

Anzahl der Male, die die Konfidenzintervalle um den Median per Bootstrap (Perzentil-Methode) berechnet werden.

labelsListe von str, optional

Beschriftungen für jeden Datensatz. Die Länge muss mit den Dimensionen von X kompatibel sein.

autorangebool, optional (False)

Wenn True und die Daten so verteilt sind, dass das 25. und 75. Perzentil gleich sind, wird whis auf (0, 100) gesetzt, sodass die Whisker-Enden am Minimum und Maximum der Daten liegen.

Gibt zurück:
Liste von dicts

Eine Liste von Wörterbüchern, die die Ergebnisse für jede Datenspalte enthalten. Die Schlüssel jedes Wörterbuchs sind die folgenden

Schlüssel

Wert Beschreibung

label

Tick-Beschriftung für den Boxplot

mean

arithmetisches Mittel

med

50. Perzentil

q1

erstes Quartil (25. Perzentil)

q3

drittes Quartil (75. Perzentil)

iqr

Interquartilsabstand

cilo

untere Kerbe um den Median

cihi

obere Kerbe um den Median

whislo

Ende des unteren Whiskers

whishi

Ende des oberen Whiskers

fliers

Ausreißer

Anmerkungen

Nicht-Bootstrap-Ansatz für Konfidenzintervalle verwendet Gaußsche asymptotische Approximation

\[\mathrm{med} \pm 1.57 \times \frac{\mathrm{iqr}}{\sqrt{N}}\]

Allgemeiner Ansatz aus: McGill, R., Tukey, J.W. und Larsen, W.A. (1978) „Variations of Boxplots“, The American Statistician, 32:12-16.

matplotlib.cbook.contiguous_regions(mask)[Quelle]#

Gibt eine Liste von (ind0, ind1) zurück, sodass mask[ind0:ind1].all() True ist und wir alle solchen Regionen abdecken.

matplotlib.cbook.delete_masked_points(*args)[Quelle]#

Findet alle maskierten und/oder nicht-endlichen Punkte in einer Reihe von Argumenten und gibt die Argumente mit nur den unmaskierten Punkten zurück.

Argumente können in 5 Kategorien fallen

  1. 1D-maskierte Arrays

  2. 1D-ndarrays

  3. ndarrays mit mehr als einer Dimension

  4. andere nicht-Zeichenketten-iterierbare Objekte

  5. alles andere

Das erste Argument muss in einer der ersten vier Kategorien liegen; jedes Argument mit einer Länge, die von der des ersten Arguments abweicht (und somit alles in Kategorie 5), wird unverändert übernommen.

Masken werden aus allen Argumenten der richtigen Länge in den Kategorien 1, 2 und 4 bezogen; ein Punkt ist schlecht, wenn er in einem maskierten Array maskiert ist oder wenn er nan oder inf ist. Es wird kein Versuch unternommen, eine Maske aus den Kategorien 2, 3 und 4 zu extrahieren, wenn numpy.isfinite kein boolesches Array liefert.

Alle Eingabeargumente, die nicht unverändert übernommen werden, werden als ndarrays zurückgegeben, nachdem die Punkte oder Zeilen entfernt wurden, die den Masken in einem der Argumente entsprechen.

Eine weitaus einfachere Version dieser Funktion wurde ursprünglich als Hilfsmittel für Axes.scatter() geschrieben.

matplotlib.cbook.file_requires_unicode(x)[Quelle]#

Gibt zurück, ob das gegebene beschreibbare dateiähnliche Objekt Unicode benötigt, um darauf zu schreiben.

matplotlib.cbook.flatten(seq, scalarp=<function is_scalar_or_string>)[Quelle]#

Gibt einen Generator von abgeflachten verschachtelten Containern zurück.

Zum Beispiel

>>> from matplotlib.cbook import flatten
>>> l = (('John', ['Hunter']), (1, 23), [[([42, (5, 23)], )]])
>>> print(list(flatten(l)))
['John', 'Hunter', 1, 23, 42, 5, 23]

Von: Zusammengesetzt von Holger Krekel und Luther Blissett Aus: https://code.activestate.com/recipes/121294-simple-generator-for-flattening-nested-containers/ und Rezept 1.12 im Cookbook

matplotlib.cbook.get_sample_data(fname, asfileobj=True)[Quelle]#

Gibt eine Beispieldatendatei zurück. fname ist ein Pfad relativ zum Verzeichnis mpl-data/sample_data. Wenn asfileobj True ist, wird ein Dateiobjekt zurückgegeben, andernfalls nur ein Dateipfad.

Beispieldatendateien werden im Verzeichnis 'mpl-data/sample_data' innerhalb des Matplotlib-Pakets gespeichert.

Wenn der Dateiname auf .gz endet, wird die Datei implizit entpackt. Wenn der Dateiname auf .npy oder .npz endet und asfileobj True ist, wird die Datei mit numpy.load geladen.

matplotlib.cbook.index_of(y)[Quelle]#

Eine Hilfsfunktion zur Erstellung vernünftiger x-Werte für das gegebene y.

Dies wird für das Plotten von (x, y) verwendet, wenn x-Werte nicht explizit angegeben sind.

Zuerst wird y.index versucht (vorausgesetzt, y ist eine pandas.Series). Wenn das fehlschlägt, wird range(len(y)) verwendet.

Dies wird in Zukunft erweitert, um mit mehr Arten von beschrifteten Daten umzugehen.

Parameter:
yfloat oder array-artig
Gibt zurück:
x, yndarray

Die zu plottenden x- und y-Werte.

matplotlib.cbook.is_math_text(s)[Quelle]#

Gibt zurück, ob der String s mathematische Ausdrücke enthält.

Dies geschieht durch Überprüfung, ob s eine gerade Anzahl von nicht maskierten Dollarzeichen enthält.

matplotlib.cbook.is_scalar_or_string(val)[Quelle]#

Gibt zurück, ob das gegebene Objekt ein Skalar oder String-artig ist.

matplotlib.cbook.is_writable_file_like(obj)[Quelle]#

Gibt zurück, ob obj wie ein Dateiobjekt mit einer write-Methode aussieht.

matplotlib.cbook.ls_mapper = {'-': 'solid', '--': 'dashed', '-.': 'dashdot', ':': 'dotted'}#

Bildet kurze Codes für Linienstile auf ihren vollständigen Namen ab, die von Backends verwendet werden.

matplotlib.cbook.ls_mapper_r = {'dashdot': '-.', 'dashed': '--', 'dotted': ':', 'solid': '-'}#

Bildet vollständige Namen für Linienstile, die von Backends verwendet werden, auf ihre Kurzcodes ab.

matplotlib.cbook.normalize_kwargs(kw, alias_mapping=None)[Quelle]#

Hilfsfunktion zur Normalisierung von Keyword-Argumenten.

Parameter:
kwdict oder None

Ein Dictionary mit Keyword-Argumenten. None wird explizit unterstützt und als leeres Dictionary behandelt, um Funktionen mit einem optionalen Parameter der Form props=None zu unterstützen.

alias_mappingdict oder Artist-Subklasse oder Artist-Instanz, optional

Eine Zuordnung zwischen einem kanonischen Namen und einer Liste von Aliassen, in aufsteigender Reihenfolge der Priorität.

Wenn der kanonische Wert nicht in der Liste enthalten ist, wird angenommen, dass er die höchste Priorität hat.

Wenn eine Artist-Subklasse oder -Instanz übergeben wird, wird deren Alias-Mapping für Eigenschaften verwendet.

Löst aus:
TypeError

Um dem zu entsprechen, was Python auslöst, wenn ungültige Argumente/Keyword-Argumente an einen Aufrufbaren übergeben werden.

matplotlib.cbook.open_file_cm(path_or_file, mode='r', encoding=None)[Quelle]#

Leitet Dateiobjekte und Pfadähnliche Objekte, die Kontextmanager sind, weiter.

matplotlib.cbook.print_cycles(objects, outstream=<_io.TextIOWrapper name='<stdout>' mode='w' encoding='utf-8'>, show_progress=False)[Quelle]#

Druckt Schleifen von zyklischen Referenzen in den gegebenen objects.

Es ist oft nützlich, gc.garbage zu übergeben, um die Schleifen zu finden, die verhindern, dass einige Objekte vom Garbage Collector aufgeräumt werden.

Parameter:
objects

Eine Liste von Objekten, in denen Schleifen gesucht werden sollen.

outstream

Der Ausgabestrom.

show_progressbool

Wenn True, wird die Anzahl der erreichten Objekte beim Auffinden gedruckt.

matplotlib.cbook.pts_to_midstep(x, *args)[Quelle]#

Konvertiert eine kontinuierliche Linie in Mittelschritte.

Gegeben eine Menge von N Punkten, konvertiert zu 2N Punkten, die, wenn sie linear verbunden werden, eine Treppenfunktion ergeben, die ihre Werte in der Mitte der Intervalle ändert.

Parameter:
xarray

Die x-Koordinaten der Stufen. Kann leer sein.

y1, ..., yparray

y-Arrays, die in Stufen umgewandelt werden sollen; alle müssen die gleiche Länge wie x haben.

Gibt zurück:
Array

Die x- und y-Werte, die in derselben Reihenfolge wie die Eingabe in Stufen umgewandelt wurden; können als x_out, y1_out, ..., yp_out entpackt werden. Wenn die Eingabe die Länge N hat, hat jedes dieser Arrays die Länge 2N.

Beispiele

>>> x_s, y1_s, y2_s = pts_to_midstep(x, y1, y2)
matplotlib.cbook.pts_to_poststep(x, *args)[Quelle]#

Konvertiert eine kontinuierliche Linie in Nachschritte.

Gegeben eine Menge von N Punkten, konvertiert zu 2N + 1 Punkten, die, wenn sie linear verbunden werden, eine Treppenfunktion ergeben, die ihre Werte am Ende der Intervalle ändert.

Parameter:
xarray

Die x-Koordinaten der Stufen. Kann leer sein.

y1, ..., yparray

y-Arrays, die in Stufen umgewandelt werden sollen; alle müssen die gleiche Länge wie x haben.

Gibt zurück:
Array

Die x- und y-Werte, die in derselben Reihenfolge wie die Eingabe in Stufen umgewandelt wurden; können als x_out, y1_out, ..., yp_out entpackt werden. Wenn die Eingabe die Länge N hat, hat jedes dieser Arrays die Länge 2N + 1. Für N=0 ist die Länge 0.

Beispiele

>>> x_s, y1_s, y2_s = pts_to_poststep(x, y1, y2)
matplotlib.cbook.pts_to_prestep(x, *args)[Quelle]#

Konvertiert eine kontinuierliche Linie in Vorschritte.

Gegeben eine Menge von N Punkten, konvertiert zu 2N - 1 Punkten, die, wenn sie linear verbunden werden, eine Treppenfunktion ergeben, die ihre Werte am Anfang der Intervalle ändert.

Parameter:
xarray

Die x-Koordinaten der Stufen. Kann leer sein.

y1, ..., yparray

y-Arrays, die in Stufen umgewandelt werden sollen; alle müssen die gleiche Länge wie x haben.

Gibt zurück:
Array

Die x- und y-Werte, die in derselben Reihenfolge wie die Eingabe in Stufen umgewandelt wurden; können als x_out, y1_out, ..., yp_out entpackt werden. Wenn die Eingabe die Länge N hat, hat jedes dieser Arrays die Länge 2N + 1. Für N=0 ist die Länge 0.

Beispiele

>>> x_s, y1_s, y2_s = pts_to_prestep(x, y1, y2)
matplotlib.cbook.safe_first_element(obj)[source]#

Gibt das erste Element in obj zurück.

Dies ist eine ty-unabhängige Methode zur Ermittlung des ersten Elements, die sowohl Indexzugriff als auch das Iteratorprotokoll unterstützt.

matplotlib.cbook.safe_masked_invalid(x, copy=False)[source]#
matplotlib.cbook.sanitize_sequence(data)[source]#

Konvertiert dictview-Objekte in eine Liste. Andere Eingaben werden unverändert zurückgegeben.

class matplotlib.cbook.silent_list(type, seq=None)[source]#

Bases: list

Eine Liste mit einer kurzen repr().

Dies ist für eine homogene Liste von Künstlern gedacht, damit diese keine langen, bedeutungslosen Ausgaben verursachen.

Anstatt

[<matplotlib.lines.Line2D object at 0x7f5749fed3c8>,
 <matplotlib.lines.Line2D object at 0x7f5749fed4e0>,
 <matplotlib.lines.Line2D object at 0x7f5758016550>]

erhält man

<a list of 3 Line2D objects>

Wenn self.type None ist, wird der Typname aus dem ersten Element der Liste (falls vorhanden) ermittelt.

matplotlib.cbook.simple_linear_interpolation(a, steps)[source]#

Resampelt ein Array mit steps - 1 Punkten zwischen ursprünglichen Punktpaaren.

Entlang jeder Spalte von a werden zwischen jedem ursprünglichen Wert (steps - 1) Punkte eingeführt; die Werte werden linear interpoliert.

Parameter:
aArray, Form (n, ...)
stepsint
Gibt zurück:
Array

Form ((n - 1) * steps + 1, ...)

matplotlib.cbook.strip_math(s)[source]#

Entfernt Latex-Formatierung aus Mathtext.

Behandelt nur vollständige Mathematik- und vollständige Nicht-Mathematik-Zeichenketten.

matplotlib.cbook.to_filehandle(fname, flag='r', return_opened=False, encoding=None)[source]#

Konvertiert einen Pfad in einen geöffneten Dateihandle oder leitet ein dateiähnliches Objekt durch.

Ziehen Sie in Betracht, stattdessen open_file_cm zu verwenden, da dies das einfache Schließen neu erstellter Dateiobjekte ermöglicht.

Parameter:
fnamestr oder pfadähnlich oder dateiähnlich

Wenn str oder os.PathLike, wird die Datei mit den durch flag und encoding angegebenen Flags geöffnet. Wenn es sich um ein dateiähnliches Objekt handelt, wird es durchgereicht.

flagstr, Standard: 'r'

Wird als mode-Argument an open übergeben, wenn fname str oder os.PathLike ist; wird ignoriert, wenn fname dateiähnlich ist.

return_openedbool, Standard: False

Wenn True, wird sowohl das Dateiobjekt als auch ein boolescher Wert zurückgegeben, der angibt, ob es sich um eine neue Datei handelt (die der Aufrufer schließen muss). Wenn False, wird nur die neue Datei zurückgegeben.

encodingstr oder None, Standard: None

Wird als mode-Argument an open übergeben, wenn fname str oder os.PathLike ist; wird ignoriert, wenn fname dateiähnlich ist.

Gibt zurück:
fhDateiähnlich
openedbool

opened wird nur zurückgegeben, wenn return_opened True ist.

matplotlib.cbook.violin_stats(X, method, points=100, quantiles=None)[source]#

Gibt eine Liste von Dictionaries mit Daten zurück, die zum Zeichnen einer Reihe von Violin-Plots verwendet werden können.

Siehe den Abschnitt Returns unten, um die erforderlichen Schlüssel des Dictionaries anzuzeigen.

Benutzer können diese Funktion überspringen und einen benutzerdefinierten Satz von Dictionaries mit denselben Schlüsseln an violinplot übergeben, anstatt Matplotlib die Berechnungen durchführen zu lassen. Siehe den Abschnitt Returns unten für die Schlüssel, die in den Dictionaries vorhanden sein müssen.

Parameter:
Xarray-ähnlich

Beispieldaten, die zur Erzeugung der Gaußschen Kerndichteschätzungen verwendet werden. Muss 2 oder weniger Dimensionen haben.

methodcallable

Die Methode, die zur Berechnung der Kerndichteschätzung für jede Datenspalte verwendet wird. Wenn sie über method(v, coords) aufgerufen wird, sollte sie einen Vektor der Werte der KDE zurückgeben, die an den in coords angegebenen Werten ausgewertet wurden.

pointsint, Standard: 100

Definiert die Anzahl der Punkte, an denen jede der Gaußschen Kerndichteschätzungen ausgewertet werden soll.

quantilesarray-like, Standard: None

Definiert (falls nicht None) eine Liste von Gleitkommazahlen im Intervall [0, 1] für jede Datenspalte, die die Quantile darstellt, die für diese Datenspalte gerendert werden. Muss 2 oder weniger Dimensionen haben. Ein 1D-Array wird als Singleton-Liste behandelt, die diese enthält.

Gibt zurück:
Liste von dicts

Eine Liste von Dictionaries, die die Ergebnisse für jede Datenspalte enthalten. Die Dictionaries enthalten mindestens die folgenden

  • coords: Eine Liste von Skalaren, die die Koordinaten enthalten, an denen diese spezielle Kerndichteschätzung ausgewertet wurde.

  • vals: Eine Liste von Skalaren, die die Werte der Kerndichteschätzung an jeder der in coords angegebenen Koordinaten enthalten.

  • mean: Der Mittelwert für diese Datenspalte.

  • median: Der Medianwert für diese Datenspalte.

  • min: Der Minimalwert für diese Datenspalte.

  • max: Der Maximalwert für diese Datenspalte.

  • quantiles: Die Quantilwerte für diese Datenspalte.