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:
objectBehandelt 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
Exceptionals einzelnen Parameter entgegennimmt. Sie wird mit jederExceptionaufgerufen, die von den Rückrufen währendCallbackRegistry.processausgelö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
verarbeitenoder sich mit einem Signal zuverbinden, das nicht in der Liste enthalten ist, löst einenValueErroraus. 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.
- class matplotlib.cbook.Grouper(init=())[Quelle]#
Bases:
objectEine Disjoint-Set-Datenstruktur.
Objekte können mit
join()verbunden werden, auf Verbundenheit getestet werden mitjoined(), 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
- class matplotlib.cbook.GrouperView(grouper)[Quelle]#
Bases:
objectUnveränderliche Ansicht über einen
Grouper.
- 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
bxpverwendet 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 unterQ3 + whis*(Q3-Q1), wobei Q1 und Q3 das erste und dritte Quartil sind. Der Standardwert vonwhis = 1.5entspricht 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
Trueund die Daten so verteilt sind, dass das 25. und 75. Perzentil gleich sind, wirdwhisauf (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
1D-maskierte Arrays
1D-ndarrays
ndarrays mit mehr als einer Dimension
andere nicht-Zeichenketten-iterierbare Objekte
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.isfinitekein 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 asfileobjTrueist, 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
Trueist, wird die Datei mitnumpy.loadgeladen.
- 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.indexversucht (vorausgesetzt, y ist einepandas.Series). Wenn das fehlschlägt, wirdrange(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=Nonezu 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.garbagezu ü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
NPunkten, konvertiert zu2NPunkten, 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
xhaben.
- 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_outentpackt werden. Wenn die Eingabe die LängeNhat, hat jedes dieser Arrays die Länge2N.
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
NPunkten, konvertiert zu2N + 1Punkten, 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
xhaben.
- 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_outentpackt werden. Wenn die Eingabe die LängeNhat, hat jedes dieser Arrays die Länge2N + 1. FürN=0ist 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
NPunkten, konvertiert zu2N - 1Punkten, 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
xhaben.
- 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_outentpackt werden. Wenn die Eingabe die LängeNhat, hat jedes dieser Arrays die Länge2N + 1. FürN=0ist 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.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:
listEine 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.typeNone 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 - 1Punkten 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_cmzu verwenden, da dies das einfache Schließen neu erstellter Dateiobjekte ermöglicht.- Parameter:
- fnamestr oder pfadähnlich oder dateiähnlich
Wenn
stroderos.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 fnamestroderos.PathLikeist; 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 fnamestroderos.PathLikeist; 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
Returnsunten, 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.