matplotlib.cbook#

Una colección de funciones y clases de utilidad. Originalmente, muchos (pero no todos) eran del Python Cookbook, de ahí el nombre cbook.

Este módulo es seguro para importar desde cualquier lugar dentro de Matplotlib; importa Matplotlib solo en tiempo de ejecución.

clase matplotlib.cbook. CallbackRegistry ( exception_handler=<función _exception_printer> , * , señales=Ninguna ) [fuente] #

Bases:object

Manejar el registro, el procesamiento, el bloqueo y la desconexión de un conjunto de señales y devoluciones de llamada:

>>> 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

En la práctica, siempre se deben desconectar todas las devoluciones de llamada cuando ya no se necesitan para evitar referencias colgantes (y, por lo tanto, pérdidas de memoria). Sin embargo, el código real en Matplotlib rara vez lo hace y, debido a su diseño, es bastante difícil colocar este tipo de código. Para evitar esto y evitar esta clase de fugas de memoria, en su lugar, almacenamos referencias débiles solo a métodos vinculados, de modo que cuando el objeto de destino deba morir, CallbackRegistry no lo mantendrá vivo.

Parámetros :
Exception_handler invocable, opcional

Si no es Ninguno, el manejador_de_excepciones debe ser una función que tome Exceptioncomo único parámetro. Se llama con cualquiera Exception generado por las devoluciones de llamada durante CallbackRegistry.process, y puede volver a generar la excepción o manejarla de otra manera.

El controlador predeterminado imprime la excepción (con traceback.print_exc) si se está ejecutando un bucle de eventos interactivos; vuelve a generar la excepción si no se está ejecutando ningún bucle de evento interactivo.

lista de señales , opcional

Si no es Ninguno, las señales son una lista de señales que maneja este registro: intentar processo connectuna señal que no está en la lista genera un archivo ValueError. El valor predeterminado, Ninguno, no restringe las señales manejadas.

bloqueado ( * , señal = Ninguno ) [fuente] #

Bloquee el procesamiento de las señales de devolución de llamada.

Un administrador de contexto para bloquear/deshabilitar temporalmente las señales de devolución de llamada para que no sean procesadas por los oyentes registrados.

Parámetros :
señal str, opcional

La señal de devolución de llamada para bloquear. El valor predeterminado es bloquear todas las señales.

conectar ( señal , función ) [fuente] #

Función de registro que se llamará cuando se genere una señal .

desconectar ( cid ) [fuente] #

Desconecte la devolución de llamada registrada con el ID de devolución de llamada cid .

No se genera ningún error si no existe dicha devolución de llamada.

proceso ( s , * argumentos , ** kwargs ) [fuente] #

Señal de proceso s .

Todas las funciones registradas para recibir devoluciones de llamada en s se llamarán con *argsy **kwargs.

clase matplotlib.cbook. Mero ( init = () ) [fuente] #

Bases:object

Una estructura de datos de conjuntos disjuntos.

Los objetos se pueden unir usando join(), probar la conexión usando joined()y todos los conjuntos disjuntos se pueden recuperar usando el objeto como un iterador.

Los objetos que se unen deben ser hashable y débilmente referenciables.

Ejemplos

>>> 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
limpio ( ) [fuente] #

Limpie las referencias muertas y débiles del diccionario.

get_siblings ( a ) [fuente] #

Devuelve todos los elementos unidos con un , incluido él mismo.

unirse ( a , * argumentos ) [fuente] #

Unir argumentos dados en el mismo conjunto. Acepta uno o más argumentos.

unido ( a , b ) [fuente] #

Devuelve si a y b son miembros del mismo conjunto.

eliminar ( a ) [fuente] #
clase matplotlib.cbook. GrouperView ( mero ) [fuente] #

Bases:object

Vista inmutable sobre un Grouper.

limpio ( ) [fuente] #

[ Obsoleto ] Limpie las referencias débiles muertas del diccionario.

notas

En desuso desde la versión 3.6.

get_siblings ( a ) [fuente] #

Devuelve todos los elementos unidos con un , incluido él mismo.

unirse ( a , * argumentos ) [fuente] #

[ Obsoleto ] Unir argumentos dados en el mismo conjunto. Acepta uno o más argumentos.

notas

En desuso desde la versión 3.6.

unido ( a , b ) [fuente] #

Devuelve si a y b son miembros del mismo conjunto.

eliminar ( a ) [fuente] #

[ Obsoleto ]

notas

En desuso desde la versión 3.6:

clase matplotlib.cbook. Pila ( predeterminado = Ninguno ) [fuente] #

Bases:object

Pila de elementos con un cursor móvil.

Imita el inicio/atrás/adelante en un navegador web.

atrás ( ) [fuente] #

Mueva la posición hacia atrás y devuelva el elemento actual.

burbuja ( o ) [fuente] #

Eleva todas las referencias de o a la parte superior de la pila y devuélvelas.

aumenta :
ValorError

Si o no está en la pila.

borrar ( ) [fuente] #

Vaciar la pila.

vacío ( ) [fuente] #

Devuelve si la pila está vacía.

adelante ( ) [fuente] #

Mueve la posición hacia adelante y devuelve el elemento actual.

casa ( ) [fuente] #

Empuje el primer elemento en la parte superior de la pila.

Se devuelve el primer elemento.

empujar ( o ) [fuente] #

Empuje o a la pila en la posición actual. Desechar todos los elementos posteriores.

o se devuelve.

eliminar ( o ) [fuente] #

Retire o de la pila.

aumenta :
ValorError

Si o no está en la pila.

matplotlib.cbook. boxplot_stats ( X , whis = 1.5 , bootstrap = Ninguno , etiquetas = Ninguno , rango automático = Falso ) [fuente] #

Retorna una lista de diccionarios de estadísticas usados ​​para dibujar una serie de diagramas de caja y bigotes usando bxp.

Parámetros :
tipo matriz X

Datos que se representarán en los diagramas de caja. Debe tener 2 o menos dimensiones.

whis float o (float, float), por defecto: 1.5

La posición de los bigotes.

Si es flotante, el bigote inferior está en el dato más bajo por encima de , y el bigote superior en el dato más alto por debajo de , donde Q1 y Q3 son el primer y tercer cuartil. El valor predeterminado de corresponde a la definición original de diagramas de caja de Tukey.Q1 - whis*(Q3-Q1)Q3 + whis*(Q3-Q1)whis = 1.5

Si un par de flotadores, indican los percentiles en los que dibujar los bigotes (p. ej., (5, 95)). En particular, establecer esto en (0, 100) da como resultado bigotes que cubren todo el rango de datos.

En el caso límite donde , whis se establece automáticamente en (0, 100) (cubre todo el rango de datos) si el rango automático es Verdadero.Q1 == Q3

Más allá de los bigotes, los datos se consideran valores atípicos y se trazan como puntos individuales.

bootstrap int, opcional

Número de veces que los intervalos de confianza alrededor de la mediana deben ser arrancados (método percentil).

etiquetas en forma de matriz, opcional

Etiquetas para cada conjunto de datos. La longitud debe ser compatible con las dimensiones de X .

autorango bool, opcional (falso)

Cuando Truey los datos se distribuyen de manera que los percentiles 25 y 75 sean iguales, whisse establece en (0, 100) de modo que los extremos de los bigotes estén en el mínimo y el máximo de los datos.

Devoluciones :
lista de dictados

Una lista de diccionarios que contienen los resultados de cada columna de datos. Las claves de cada diccionario son las siguientes:

Llave

Valor Descripción

etiqueta

marque la etiqueta para el diagrama de caja

significar

valor medio aritmético

medicina

percentil 50

q1

primer cuartil (percentil 25)

q3

tercer cuartil (percentil 75)

iqr

rango intercuartil

cil

muesca inferior alrededor de la mediana

cihi

muesca superior alrededor de la mediana

silbido

extremo del bigote inferior

whishi

extremo del bigote superior

volantes

valores atípicos

notas

El enfoque sin arranque del intervalo de confianza utiliza una aproximación asintótica basada en Gauss:

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

Enfoque general de: McGill, R., Tukey, JW y Larsen, WA (1978) "Variations of Boxplots", The American Statistician, 32:12-16.

matplotlib.cbook. regiones_contiguas ( máscara ) [fuente] #

Devuelve una lista de (ind0, ind1) tal que mask[ind0:ind1].all()sea True y cubrimos todas esas regiones.

matplotlib.cbook. delete_masked_points ( * argumentos ) [fuente] #

Encuentre todos los puntos enmascarados y/o no finitos en un conjunto de argumentos y devuelva los argumentos con solo los puntos sin enmascarar restantes.

Los argumentos pueden estar en cualquiera de las 5 categorías:

  1. Arreglos enmascarados 1-D

  2. 1-D ndarrays

  3. ndarrays con más de una dimensión

  4. otros iterables que no son cadenas

  5. Algo más

El primer argumento debe estar en una de las primeras cuatro categorías; cualquier argumento con una longitud diferente a la del primer argumento (y por lo tanto cualquier cosa en la categoría 5) se pasará sin cambios.

Las máscaras se obtienen de todos los argumentos de la longitud correcta en las categorías 1, 2 y 4; un punto es malo si está enmascarado en una matriz enmascarada o si es un nan o inf. No se intenta extraer una máscara de las categorías 2, 3 y 4 si numpy.isfinite no produce una matriz booleana.

Todos los argumentos de entrada que no se pasan sin cambios se devuelven como ndarrays después de eliminar los puntos o filas correspondientes a las máscaras en cualquiera de los argumentos.

Una versión mucho más simple de esta función se escribió originalmente como una ayuda para Axes.scatter().

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

Devuelve si el objeto similar a un archivo grabable dado requiere que se escriba Unicode en él.

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

Devuelve un generador de contenedores anidados aplanados.

Por ejemplo:

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

Por: Compuesto de Holger Krekel y Luther Blissett De: https://code.activestate.com/recipes/121294/ y Receta 1.12 en libro de cocina

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

Devuelve un archivo de datos de muestra. fname es una ruta relativa al mpl-data/sample_datadirectorio. Si asfileobj devuelve un objeto de archivo, de lo True contrario, solo una ruta de archivo.

Los archivos de datos de muestra se almacenan en el directorio 'mpl-data/sample_data' dentro del paquete Matplotlib.

Si el nombre del archivo termina en .gz, el archivo se descomprime implícitamente. Si el nombre del archivo termina con .npy o .npz, asfileobj es True y np_load es True, el archivo se carga con numpy.load. np_load actualmente tiene el valor predeterminado False, pero tendrá el valor predeterminado True en una versión futura.

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

Una función auxiliar para crear valores x razonables para la y dada .

Esto se usa para graficar (x, y) si los valores de x no se dan explícitamente.

Primero intente y.index(asumiendo que y es a pandas.Series), si eso falla, use range(len(y)).

Esto se ampliará en el futuro para tratar con más tipos de datos etiquetados.

Parámetros :
y flotante o en forma de matriz
Devoluciones :
x, y ndarray

Los valores x e y para graficar.

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

Devuelve si la cadena s contiene expresiones matemáticas.

Esto se hace comprobando si s contiene un número par de signos de dólar sin escape.

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

Devuelve si el objeto dado es un escalar o una cadena.

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

Devuelve si obj parece un objeto de archivo con un método de escritura .

matplotlib.cbook. ls_mapper = {'-': 'sólido', '--': 'guión', '-.': 'guión', ':': 'punteado'} #

Asigna códigos cortos para el estilo de línea a su nombre completo utilizado por los backends.

matplotlib.cbook. ls_mapper_r = {'guión': '-.', 'guión': '--', 'punteado': ':', 'sólido': '-'} #

Asigna los nombres completos de los estilos de línea utilizados por los backends a sus códigos cortos.

clase matplotlib.cbook. maxdict ( maxsize ) [fuente] #

Bases:dict

[ Obsoleto ] Un diccionario con un tamaño máximo.

notas

Esto no anula todos los métodos relevantes para restringir el tamaño, solo __setitem__, así que utilícelo con precaución.

En desuso desde la versión 3.6: use functools.lru_cache en su lugar.

matplotlib.cbook. normalize_kwargs ( kw , alias_mapping = Ninguno ) [fuente] #

Función auxiliar para normalizar las entradas de kwarg.

Parámetros :
kw dict o Ninguno

Un dictado de argumentos de palabras clave. Ninguno se admite explícitamente y se trata como un dictado vacío, para admitir funciones con un parámetro opcional del formulario props=None.

alias_mapping dict o subclase de artista o instancia de artista, opcional

Un mapeo entre un nombre canónico a una lista de alias, en orden de precedencia de menor a mayor.

Si el valor canónico no está en la lista, se supone que tiene la prioridad más alta.

Si se pasa una subclase o instancia de artista, use su asignación de alias de propiedades.

aumenta :
Error de tecleado

Para hacer coincidir lo que plantea Python si se pasan argumentos/argumentos de palabras clave inválidos a un invocable.

matplotlib.cbook. open_file_cm ( ruta_o_archivo , modo = 'r' , codificación = Ninguno ) [fuente] #

Pase a través de objetos de archivo y administre contextos similares a rutas.

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

Imprime bucles de referencias cíclicas en los objetos dados .

A menudo es útil pasar gc.garbagepara encontrar los ciclos que impiden que algunos objetos se recopilen como basura.

Parámetros :
objetos

Una lista de objetos para encontrar ciclos.

aguas afuera

La secuencia para la salida.

mostrar_progreso bool

Si es Verdadero, imprime el número de objetos alcanzados a medida que se encuentran.

matplotlib.cbook. pts_to_midstep ( x , * argumentos ) [fuente] #

Convierta la línea continua en pasos intermedios.

Dado un conjunto de Npuntos, se convierten en 2Npuntos que, cuando se conectan linealmente, dan una función de paso que cambia los valores en la mitad de los intervalos.

Parámetros :
matriz x

La ubicación x de los pasos. Puede estar vacío.

y1, ..., matriz yp

y arreglos para convertirlos en pasos; todos deben tener la misma longitud que x.

Devoluciones :
formación

Los valores x e y convertidos a pasos en el mismo orden que la entrada; se puede descomprimir como . Si la entrada es length , cada una de estas matrices será length .x_out, y1_out, ..., yp_outN2N

Ejemplos

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

Convierta la línea continua en pasos posteriores.

Dado un conjunto de Npuntos, se convierten en puntos, que cuando se conectan linealmente dan una función de paso que cambia los valores al final de los intervalos.2N + 1

Parámetros :
matriz x

La ubicación x de los pasos. Puede estar vacío.

y1, ..., matriz yp

y arreglos para convertirlos en pasos; todos deben tener la misma longitud que x.

Devoluciones :
formación

Los valores x e y convertidos a pasos en el mismo orden que la entrada; se puede descomprimir como . Si la entrada es length , cada una de estas matrices será length . Para , la longitud será 0.x_out, y1_out, ..., yp_outN2N + 1N=0

Ejemplos

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

Convierta la línea continua en pasos previos.

Dado un conjunto de Npuntos, convertirlos en puntos, que cuando se conectan linealmente dan una función de paso que cambia los valores al comienzo de los intervalos.2N - 1

Parámetros :
matriz x

La ubicación x de los pasos. Puede estar vacío.

y1, ..., matriz yp

y arreglos para convertirlos en pasos; todos deben tener la misma longitud que x.

Devoluciones :
formación

Los valores x e y convertidos a pasos en el mismo orden que la entrada; se puede descomprimir como . Si la entrada es length , cada una de estas matrices será length . Para , la longitud será 0.x_out, y1_out, ..., yp_outN2N + 1N=0

Ejemplos

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

[ Obsoleto ] Devuelve la memoria consumida por el proceso.

notas

En desuso desde la versión 3.5: use psutil.virtual_memory en su lugar.

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

Devuelve el primer elemento en obj .

Esta es una forma independiente del tipo de obtener el primer elemento, que admite tanto el acceso al índice como el protocolo iterador.

matplotlib.cbook. safe_masked_invalid ( x , copiar = Falso ) [fuente] #
matplotlib.cbook. sanitize_sequence ( datos ) [fuente] #

Convierte objetos dictview en lista. Otras entradas se devuelven sin cambios.

clase matplotlib.cbook. silent_list ( tipo , seq = Ninguno ) [fuente] #

Bases:list

Una lista con un breve repr().

Esto está destinado a ser utilizado para una lista homogénea de artistas, de modo que no generen una salida larga y sin sentido.

En vez de

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

uno obtendrá

<a list of 3 Line2D objects>

Si self.typees Ninguno, el nombre del tipo se obtiene del primer elemento de la lista (si lo hay).

matplotlib.cbook. interpolación_lineal_simple ( a , pasos ) [fuente] #

Vuelva a muestrear una matriz con puntos entre pares de puntos originales.steps - 1

A lo largo de cada columna de a , se introducen puntos entre cada uno de los valores originales; los valores se interpolan linealmente.(steps - 1)

Parámetros :
una matriz, forma (n, ...)
pasos ent
Devoluciones :
formación

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

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

Elimina el formato látex de texto matemático.

Solo maneja cadenas completamente matemáticas y completamente no matemáticas.

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

Convierta una ruta en un identificador de archivo abierto o pase a través de un objeto similar a un archivo.

Considere usar open_file_cmen su lugar, ya que permite cerrar correctamente los objetos de archivo recién creados con mayor facilidad.

Parámetros :
fname str o similar a una ruta o similar a un archivo

Si stro os.PathLike, el archivo se abre usando las banderas especificadas por bandera y codificación . Si es un objeto similar a un archivo, se pasa a través de él.

bandera str, por defecto: 'r'

Pasado como argumento de modoopen cuando fname es stro os.PathLike; ignorado si fname es como un archivo.

return_opened bool, predeterminado: Falso

Si es Verdadero, devuelve tanto el objeto de archivo como un valor booleano que indica si se trata de un archivo nuevo (que la persona que llama debe cerrar). Si es False, devuelve solo el archivo nuevo.

codificando str o Ninguno, por defecto: Ninguno

Pasado como argumento de modoopen cuando fname es stro os.PathLike; ignorado si fname es como un archivo.

Devoluciones :
tipo archivo fh
libro abierto

open solo se devuelve si return_opened es True.

matplotlib.cbook. violin_stats ( X , método , puntos = 100 , cuantiles = Ninguno ) [fuente] #

Devuelve una lista de diccionarios de datos que se pueden usar para dibujar una serie de diagramas de violín.

Consulte la Returnssección a continuación para ver las claves requeridas del diccionario.

Los usuarios pueden omitir esta función y pasar un conjunto de diccionarios definidos por el usuario con las mismas claves en violinplotlugar de usar Matplotlib para hacer los cálculos. Consulte la sección Devoluciones a continuación para conocer las claves que deben estar presentes en los diccionarios.

Parámetros :
tipo matriz X

Datos de muestra que se utilizarán para producir las estimaciones de densidad del núcleo gaussiano. Debe tener 2 o menos dimensiones.

método invocable

El método utilizado para calcular la estimación de densidad kernel para cada columna de datos. Cuando se llama a través de , debe devolver un vector de los valores de KDE evaluados en los valores especificados en coords.method(v, coords)

puntos int, por defecto: 100

Define el número de puntos para evaluar cada una de las estimaciones de densidad del núcleo gaussiano.

cuantiles en forma de matriz, predeterminado: Ninguno

Define (si no es Ninguno) una lista de flotantes en el intervalo [0, 1] para cada columna de datos, que representa los cuantiles que se representarán para esa columna de datos. Debe tener 2 o menos dimensiones. La matriz 1D se tratará como una lista única que los contiene.

Devoluciones :
lista de dictados

Una lista de diccionarios que contienen los resultados de cada columna de datos. Los diccionarios contienen al menos lo siguiente:

  • coords: una lista de escalares que contienen las coordenadas en las que se evaluó esta estimación de densidad de kernel en particular.

  • vals: una lista de escalares que contienen los valores de la estimación de la densidad del kernel en cada una de las coordenadas dadas en coords .

  • media: el valor medio de esta columna de datos.

  • mediana: El valor de la mediana para esta columna de datos.

  • min: El valor mínimo para esta columna de datos.

  • max: El valor máximo para esta columna de datos.

  • cuantiles: los valores cuantiles para esta columna de datos.