matplotlib.cbook#

Una raccolta di funzioni e classi di utilità. In origine, molti (ma non tutti) provenivano dal Python Cookbook, da cui il nome cbook.

Questo modulo è sicuro da importare da qualsiasi luogo all'interno di Matplotlib; importa Matplotlib solo in fase di esecuzione.

classe matplotlib.cbook. CallbackRegistry ( exception_handler=<function _exception_printer> , * , signal=None ) [fonte] #

Basi:object

Gestisci la registrazione, l'elaborazione, il blocco e la disconnessione per una serie di segnali e callback:

>>> 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 pratica, si dovrebbero sempre disconnettere tutte le richiamate quando non sono più necessarie per evitare riferimenti penzolanti (e quindi perdite di memoria). Tuttavia, il codice reale in Matplotlib lo fa raramente e, a causa del suo design, è piuttosto difficile inserire questo tipo di codice. Per aggirare questo problema e prevenire questa classe di perdite di memoria, memorizziamo invece riferimenti deboli solo a metodi associati, quindi quando l'oggetto di destinazione deve morire, CallbackRegistry non lo manterrà in vita.

Parametri :
exception_handler richiamabile, facoltativo

Se non è None, exception_handler deve essere una funzione che accetta un Exceptionsingolo parametro. Viene chiamato con qualsiasi chiamata Exception generata dai callback durante CallbackRegistry.processe può sollevare nuovamente l'eccezione o gestirla in un altro modo.

Il gestore predefinito stampa l'eccezione (con traceback.print_exc) se è in esecuzione un ciclo di eventi interattivo; solleva nuovamente l'eccezione se non è in esecuzione alcun ciclo di eventi interattivo.

lista dei segnali , opzionale

Se non è None, signal è un elenco di segnali gestiti da questo registro: il tentativo di processo connectverso un segnale non presente nell'elenco genera un file ValueError. L'impostazione predefinita, Nessuno, non limita i segnali gestiti.

bloccato ( * , segnale = Nessuno ) [fonte] #

Blocca l'elaborazione dei segnali di callback.

Un gestore di contesto per bloccare/disabilitare temporaneamente i segnali di richiamata dall'elaborazione da parte dei listener registrati.

Parametri :
segnale str, facoltativo

Il segnale di richiamata da bloccare. L'impostazione predefinita è bloccare tutti i segnali.

connect ( signal , func ) [fonte] #

Funzione di registro da richiamare quando viene generato il segnale di segnale .

disconnettere ( cid ) [fonte] #

Disconnettere la richiamata registrata con l'id di richiamata cid .

Non viene generato alcun errore se tale richiamata non esiste.

processo ( s , * args , ** kwargs ) [fonte] #

Segnali di processo .

Tutte le funzioni registrate per ricevere callback su s verranno chiamate con *argse **kwargs.

classe matplotlib.cbook. Raggruppatore ( init = () ) [fonte] #

Basi:object

Una struttura di dati a insiemi disgiunti.

Gli oggetti possono essere uniti usando join(), testati per la connessione usando joined()e tutti gli insiemi disgiunti possono essere recuperati usando l'oggetto come iteratore.

Gli oggetti che vengono uniti devono essere hashable e referenziabili in modo debole.

Esempi

>>> 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
pulito ( ) [fonte] #

Pulisci i riferimenti deboli morti dal dizionario.

get_fratelli ( a ) [fonte] #

Restituisce tutti gli elementi uniti con un , incluso se stesso.

join ( a , * args ) [fonte] #

Unisci gli argomenti dati nello stesso insieme. Accetta uno o più argomenti.

unito ( a , b ) [fonte] #

Restituisce se a e b sono membri dello stesso insieme.

rimuovi ( a ) [fonte] #
classe matplotlib.cbook. GrouperView ( cernia ) [fonte] #

Basi:object

Vista immutabile su un file Grouper.

pulito ( ) [fonte] #

[ Deprecato ] Pulisci i riferimenti deboli morti dal dizionario.

Appunti

Deprecato dalla versione 3.6.

get_fratelli ( a ) [fonte] #

Restituisce tutti gli elementi uniti con un , incluso se stesso.

join ( a , * args ) [fonte] #

[ Deprecato ] Unisci gli argomenti dati nello stesso insieme. Accetta uno o più argomenti.

Appunti

Deprecato dalla versione 3.6.

unito ( a , b ) [fonte] #

Restituisce se a e b sono membri dello stesso insieme.

rimuovi ( a ) [fonte] #

[ Deprecato ]

Appunti

Deprecato dalla versione 3.6:

classe matplotlib.cbook. Stack ( predefinito = Nessuno ) [fonte] #

Basi:object

Pila di elementi con un cursore mobile.

Imita casa/indietro/avanti in un browser web.

indietro ( ) [fonte] #

Sposta indietro la posizione e restituisce l'elemento corrente.

bolla ( o ) [fonte] #

Alza tutti i riferimenti di o in cima allo stack e restituiscilo.

Rialzi :
ValoreErrore

Se o non è nella pila.

cancella ( ) [fonte] #

Svuota la pila.

vuoto ( ) [fonte] #

Restituisce se lo stack è vuoto.

avanti ( ) [fonte] #

Sposta la posizione in avanti e restituisce l'elemento corrente.

casa ( ) [fonte] #

Spingi il primo elemento in cima alla pila.

Viene restituito il primo elemento.

premi ( o ) [fonte] #

Spingi o nella pila nella posizione corrente. Scarta tutti gli elementi successivi.

o viene restituito.

rimuovi ( o ) [fonte] #

Rimuovi o dalla pila.

Rialzi :
ValoreErrore

Se o non è nella pila.

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

Restituisce un elenco di dizionari di statistiche utilizzati per disegnare una serie di grafici a scatola e baffi utilizzando bxp.

Parametri :
Simile a un array X

Dati che verranno rappresentati nei boxplot. Dovrebbe avere 2 o meno dimensioni.

whis float o (float, float), default: 1.5

La posizione dei baffi.

Se è float, il baffo inferiore è al dato più basso sopra , e il baffo superiore al dato più alto sotto , dove Q1 e Q3 sono il primo e il terzo quartile. Il valore predefinito di corrisponde alla definizione originale di boxplot di Tukey.Q1 - whis*(Q3-Q1)Q3 + whis*(Q3-Q1)whis = 1.5

Se una coppia di float indica i percentili in corrispondenza dei quali disegnare i baffi (ad esempio, (5, 95)). In particolare, impostandolo su (0, 100) si ottengono baffi che coprono l'intero intervallo di dati.

Nel caso limite in cui , whis è impostato automaticamente su (0, 100) (copre l'intero intervallo dei dati) se autorange è True.Q1 == Q3

Al di là dei baffi, i dati sono considerati valori anomali e vengono tracciati come singoli punti.

bootstrap int, facoltativo

Numero di volte in cui gli intervalli di confidenza attorno alla mediana devono essere sottoposti a bootstrapping (metodo percentile).

etichette tipo array, facoltativo

Etichette per ogni set di dati. La lunghezza deve essere compatibile con le dimensioni di X .

autorange bool, facoltativo (falso)

Quando Truee i dati sono distribuiti in modo tale che il 25° e il 75° percentile siano uguali, whisè impostato su (0, 100) in modo tale che le estremità dei baffi si trovino al minimo e al massimo dei dati.

Resi :
elenco dict

Un elenco di dizionari contenente i risultati per ogni colonna di dati. Le chiavi di ogni dizionario sono le seguenti:

Chiave

Valore Descrizione

etichetta

spuntare l'etichetta per il boxplot

significare

valore medio aritmetico

med

50esimo percentile

q1

primo quartile (25° percentile)

q3

terzo quartile (75° percentile)

qr

intervallo interquartile

cilo

tacca inferiore attorno alla mediana

cihi

tacca superiore attorno alla mediana

whislo

estremità del baffo inferiore

whishi

estremità del baffo superiore

volantini

valori anomali

Appunti

L'approccio non bootstrap all'intervallo di confidenza utilizza l'approssimazione asintotica basata su gaussiana:

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

Approccio generale da: McGill, R., Tukey, JW, e Larsen, WA (1978) "Variations of Boxplots", The American Statistician, 32:12-16.

matplotlib.cbook. regioni_contigue ( maschera ) [fonte] #

Restituisce un elenco di (ind0, ind1) tale che mask[ind0:ind1].all()sia True e copriamo tutte queste regioni.

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

Trova tutti i punti mascherati e/o non finiti in un insieme di argomenti e restituisci gli argomenti con solo i punti non mascherati rimanenti.

Gli argomenti possono essere in una qualsiasi delle 5 categorie:

  1. Matrici mascherate 1D

  2. ndaray 1-D

  3. ndarray con più di una dimensione

  4. altri iterabili non stringa

  5. qualunque altra cosa

Il primo argomento deve essere in una delle prime quattro categorie; qualsiasi argomento con una lunghezza diversa da quella del primo argomento (e quindi qualsiasi cosa nella categoria 5) verrà passato invariato.

Le maschere sono ottenute da tutti gli argomenti della lunghezza corretta nelle categorie 1, 2 e 4; un punto è cattivo se mascherato in un array mascherato o se è un nan o un inf. Non viene effettuato alcun tentativo di estrarre una maschera dalle categorie 2, 3 e 4 se numpy.isfinite non produce un array booleano.

Tutti gli argomenti di input che non vengono passati invariati vengono restituiti come ndarray dopo aver rimosso i punti o le righe corrispondenti alle maschere in uno qualsiasi degli argomenti.

Una versione molto più semplice di questa funzione è stata originariamente scritta come helper per Axes.scatter().

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

Restituisce se l'oggetto simile a file scrivibile specificato richiede la scrittura di Unicode su di esso.

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

Restituisce un generatore di contenitori nidificati appiattiti.

Per esempio:

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

Di: Composito di Holger Krekel e Luther Blissett Da: https://code.activestate.com/recipes/121294/ e Ricetta 1.12 nel ricettario

matplotlib.cbook. get_sample_data ( fname , asfileobj = True , * , np_load = False ) [fonte] #

Restituisce un file di dati di esempio. fname è un percorso relativo alla mpl-data/sample_datadirectory. Se asfileobj restituisce un oggetto True file, altrimenti solo un percorso file.

I file di dati di esempio sono archiviati nella directory 'mpl-data/sample_data' all'interno del pacchetto Matplotlib.

Se il nome del file termina con .gz, il file viene implicitamente decompresso. Se il nome del file termina con .npy o .npz, asfileobj è True e np_load è True, il file viene caricato con numpy.load. np_load attualmente è impostato su False, ma verrà impostato su True in una versione futura.

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

Una funzione di supporto per creare valori x ragionevoli per il dato y .

Questo è usato per tracciare (x, y) se i valori x non sono dati esplicitamente.

Prima prova y.index(supponendo che y sia a pandas.Series), se fallisce, usa range(len(y)).

Questo sarà esteso in futuro per gestire più tipi di dati etichettati.

Parametri :
y float o simile a un array
Resi :
x, y ndarray

I valori x e y da tracciare.

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

Restituisce se la stringa s contiene espressioni matematiche.

Questo viene fatto controllando se s contiene un numero pari di simboli del dollaro senza escape.

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

Restituisce se l'oggetto dato è uno scalare o simile a una stringa.

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

Restituisce se obj sembra un oggetto file con un metodo write .

matplotlib.cbook. ls_mapper = {'-': 'solido', '--': 'tratteggiato', '-.': 'trattino', ':': 'punteggiato'} #

Associa i codici funzione per lo stile della linea al nome completo utilizzato dai backend.

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

Associa i nomi completi degli stili di linea utilizzati dai backend ai loro codici funzione.

classe matplotlib.cbook. maxdict ( maxsize ) [fonte] #

Basi:dict

[ Deprecato ] Un dizionario con una dimensione massima.

Appunti

Questo non sovrascrive tutti i metodi rilevanti per vincolare la dimensione, solo __setitem__, quindi usalo con cautela.

Deprecato dalla versione 3.6: utilizzare invece functools.lru_cache.

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

Funzione di supporto per normalizzare gli input kwarg.

Parametri :
kw dict o Nessuno

Un dict di argomenti di parole chiave. None è supportato in modo esplicito e trattato come un dict vuoto, per supportare le funzioni con un parametro facoltativo della forma props=None.

alias_mapping dict o sottoclasse dell'artista o istanza dell'artista, facoltativo

Una mappatura tra un nome canonico e un elenco di alias, in ordine di precedenza dal più basso al più alto.

Se il valore canonico non è nell'elenco, si presume che abbia la priorità più alta.

Se viene passata una sottoclasse o un'istanza di Artist, utilizzare la relativa mappatura degli alias delle proprietà.

Rialzi :
TipoErrore

Per corrispondere a ciò che Python genera se argomenti/parole chiave non validi vengono passati a un chiamabile.

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

Passa attraverso gli oggetti file e gestisci i percorsi simili al contesto.

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

Stampa cicli di riferimenti ciclici negli oggetti dati .

Spesso è utile eseguire il passaggio gc.garbageper trovare i cicli che impediscono ad alcuni oggetti di essere sottoposti a Garbage Collection.

Parametri :
oggetti

Un elenco di oggetti in cui trovare i cicli.

outstream

Il flusso per l'output.

show_progress bool

Se True, stampa il numero di oggetti raggiunti man mano che vengono trovati.

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

Converti la linea continua in passi intermedi.

Dato un insieme di Npunti convertiti in 2Npunti che, se collegati linearmente, danno una funzione di gradino che cambia i valori al centro degli intervalli.

Parametri :
matrice x

La posizione x dei gradini. Potrebbe essere vuoto.

matrice y1, ..., yp

y array da trasformare in passi; tutti devono avere la stessa lunghezza di x.

Resi :
Vettore

I valori x e y convertiti in passaggi nello stesso ordine dell'input; può essere decompresso come . Se l'input è length , ciascuno di questi array sarà length .x_out, y1_out, ..., yp_outN2N

Esempi

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

Converti la linea continua in post-passi.

Dato un insieme di Npunti convertiti in punti, che quando collegati linearmente danno una funzione di gradino che cambia i valori alla fine degli intervalli.2N + 1

Parametri :
matrice x

La posizione x dei gradini. Potrebbe essere vuoto.

matrice y1, ..., yp

y array da trasformare in passi; tutti devono avere la stessa lunghezza di x.

Resi :
Vettore

I valori x e y convertiti in passaggi nello stesso ordine dell'input; può essere decompresso come . Se l'input è length , ciascuno di questi array sarà length . Per , la lunghezza sarà 0.x_out, y1_out, ..., yp_outN2N + 1N=0

Esempi

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

Converti la linea continua in pre-passi.

Dato un insieme di Npunti, convertire in punti, che quando collegati linearmente danno una funzione di gradino che cambia i valori all'inizio degli intervalli.2N - 1

Parametri :
matrice x

La posizione x dei gradini. Potrebbe essere vuoto.

matrice y1, ..., yp

y array da trasformare in passi; tutti devono avere la stessa lunghezza di x.

Resi :
Vettore

I valori x e y convertiti in passaggi nello stesso ordine dell'input; può essere decompresso come . Se l'input è length , ciascuno di questi array sarà length . Per , la lunghezza sarà 0.x_out, y1_out, ..., yp_outN2N + 1N=0

Esempi

>>> x_s, y1_s, y2_s = pts_to_prestep(x, y1, y2)
matplotlib.cbook. report_memory ( i = 0 ) [fonte] #

[ Deprecato ] Restituisce la memoria consumata dal processo.

Appunti

Deprecato dalla versione 3.5: utilizzare invece psutil.virtual_memory.

matplotlib.cbook. safe_first_element ( obj ) [fonte] #

Restituisce il primo elemento in obj .

Questo è un modo indipendente dal tipo per ottenere il primo elemento, supportando sia l'accesso all'indice che il protocollo iteratore.

matplotlib.cbook. safe_masked_invalid ( x , copy = False ) [fonte] #
matplotlib.cbook. sanitize_sequence ( dati ) [fonte] #

Converti oggetti dictview in elenco. Gli altri input vengono restituiti invariati.

classe matplotlib.cbook. silent_list ( tipo , seq = None ) [fonte] #

Basi:list

Un elenco con un breve file repr().

Questo è pensato per essere utilizzato per un elenco omogeneo di artisti, in modo che non causino risultati lunghi e privi di significato.

Invece di

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

uno otterrà

<a list of 3 Line2D objects>

Se self.typeè None, il nome del tipo viene ottenuto dal primo elemento dell'elenco (se presente).

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

Ricampiona un array con punti tra coppie di punti originali.steps - 1

Lungo ogni colonna di a , vengono introdotti dei punti tra ogni valore originale; i valori sono interpolati linearmente.(steps - 1)

Parametri :
un array, una forma (n, ...)
passi int
Resi :
Vettore

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

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

Rimuovi la formattazione latex da mathtext.

Gestisce solo stringhe completamente matematiche e completamente non matematiche.

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

Converti un percorso in un handle di file aperto o passa attraverso un oggetto simile a un file.

Prendi in considerazione l'utilizzo open_file_cminvece, in quanto consente di chiudere correttamente gli oggetti file appena creati più facilmente.

Parametri :
fname str o simile a un percorso o simile a un file

Se stro os.PathLike, il file viene aperto utilizzando i flag specificati da flag e encoding . Se un oggetto simile a un file, viene passato.

bandiera str, predefinito: 'r'

Passato come argomento modeopen a quando fname è stro os.PathLike; ignorato se fname è simile a un file.

return_opened bool, predefinito: falso

Se True, restituisce sia l'oggetto file che un valore booleano che indica se si tratta di un nuovo file (che il chiamante deve chiudere). Se False, restituisce solo il nuovo file.

encoding str o Nessuno, predefinito: Nessuno

Passato come argomento modeopen a quando fname è stro os.PathLike; ignorato se fname è simile a un file.

Resi :
fh simile a un file
bool aperto

open viene restituito solo se return_opened è True.

matplotlib.cbook. violin_stats ( X , metodo , punti = 100 , quantili = Nessuno ) [fonte] #

Restituisce un elenco di dizionari di dati che possono essere utilizzati per disegnare una serie di trame di violino.

Vedere la Returnssezione seguente per visualizzare le chiavi richieste del dizionario.

Gli utenti possono ignorare questa funzione e passare un set di dizionari definito dall'utente con le stesse chiavi violinplotinvece di utilizzare Matplotlib per eseguire i calcoli. Vedere la sezione Restituzioni di seguito per le chiavi che devono essere presenti nei dizionari.

Parametri :
Simile a un array X

Dati di esempio che verranno utilizzati per produrre le stime della densità del kernel gaussiano. Deve avere 2 o meno dimensioni.

metodo chiamabile

Il metodo utilizzato per calcolare la stima della densità del kernel per ogni colonna di dati. Quando viene chiamato tramite , dovrebbe restituire un vettore dei valori di KDE valutati ai valori specificati in coords.method(v, coords)

punti int, predefinito: 100

Definisce il numero di punti in cui valutare ciascuna stima della densità del kernel gaussiano.

quantili tipo array, default: Nessuno

Definisce (se non è None) un elenco di float nell'intervallo [0, 1] per ogni colonna di dati, che rappresenta i quantili di cui verrà eseguito il rendering per quella colonna di dati. Deve avere 2 o meno dimensioni. L'array 1D verrà trattato come un elenco singleton che li contiene.

Resi :
elenco dict

Un elenco di dizionari contenente i risultati per ogni colonna di dati. I dizionari contengono almeno quanto segue:

  • coords: un elenco di scalari contenente le coordinate in cui è stata valutata questa particolare stima della densità del kernel.

  • vals: un elenco di scalari contenente i valori della stima della densità del kernel in ciascuna delle coordinate fornite in coords .

  • media: il valore medio per questa colonna di dati.

  • median: il valore mediano per questa colonna di dati.

  • min: il valore minimo per questa colonna di dati.

  • max: il valore massimo per questa colonna di dati.

  • quantili: i valori quantili per questa colonna di dati.