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
Exception
singolo parametro. Viene chiamato con qualsiasi chiamataException
generata dai callback duranteCallbackRegistry.process
e 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
process
oconnect
verso un segnale non presente nell'elenco genera un fileValueError
. 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 .
- 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 usandojoined()
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
- 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.
- classe matplotlib.cbook. Stack ( predefinito = Nessuno ) [fonte] #
Basi:
object
Pila di elementi con un cursore mobile.
Imita casa/indietro/avanti in un browser web.
- bolla ( o ) [fonte] #
Alza tutti i riferimenti di o in cima allo stack e restituiscilo.
- 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
True
e 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:
Matrici mascherate 1D
ndaray 1-D
ndarray con più di una dimensione
altri iterabili non stringa
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_data
directory. Se asfileobj restituisce un oggettoTrue
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 apandas.Series
), se fallisce, usarange(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.garbage
per 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
N
punti convertiti in2N
punti 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_out
N
2N
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
N
punti 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_out
N
2N + 1
N=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
N
punti, 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_out
N
2N + 1
N=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. 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_cm
invece, 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
str
oos.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 mode
open
a quando fname èstr
oos.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 mode
open
a quando fname èstr
oos.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
Returns
sezione 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
violinplot
invece 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.