Ubicación de la leyenda de Matplotlib

Ubicación de la leyenda de Matplotlib

Matplotlib es un gran paquete de visualización de Python para gráficos de matriz 2D. La leyenda es una sección que define las partes del gráfico. Legend () es un método en el paquete matplotlib que se está utilizando para mostrar una leyenda en los gráficos. El parámetro LOC en el método Legend () se puede utilizar para indicar la ubicación de la leyenda. Loc = "best" es el valor predeterminado (superior a la izquierda). La leyenda se encuentra a la posición apropiada de las figuras por los parámetros, la mejor derecha, arriba a la izquierda, abajo a la izquierda, a la derecha, abajo a la derecha, al centro izquierdo, al centro inferior, el centro a la derecha y al centro superior. Las leyendas de la trama proporcionan un contexto visual mediante la implementación del bien a los componentes de la trama.

En este artículo, examinemos cómo personalizar el posicionamiento y la estética de la leyenda en Matplotlib.

Ubicación de la leyenda

El término 'loc' como parámetro podría utilizarse para indicar la ubicación de la leyenda. En este caso, vemos el método de cómo localizamos la leyenda.

Importar matplotlib.Pyplot como PLT
importar numpy como np
Fig, ax_dict = plt.subplot_mosaic ([['top', 'top'], ['Bottom', 'en blanco']],
vacía_sentinel = "en blanco")
ax_dict ['top'].Plot ([2, 3, 4], etiqueta = "etiqueta1")
ax_dict ['top'].Plot ([4, 3, 2], etiqueta = "etiqueta2")
ax_dict ['top'].leyenda (bbox_to_anchor = (0., 1.02, 1., .102), loc = 'inferior a la izquierda',
ncol = 2, mode = "expandir", borderAxespad = 0.)
ax_dict ['Bottom'].Plot ([2, 3, 4], etiqueta = "etiqueta1")
ax_dict ['Bottom'].Plot ([4, 3, 2], etiqueta = "etiqueta2")
ax_dict ['Bottom'].leyenda (bbox_to_anchor = (1.05, 1),
loc = 'superior izquierda', borderAxespad = 0.)
PLT.espectáculo()

El comando bbox_to_anchor nos permite una gran flexibilidad cuando se trata de colocar manualmente las leyendas. Si quisiéramos que la leyenda de los ejes aparezca en la parte superior derecha del modelo en lugar del borde de los ejes, simplemente proporcionamos la posición de la esquina y la posición tridimensional.

Se inserta una leyenda más allá de la trama secundaria, y se expande a. También utilizamos el cuadro delimitador que se ha proporcionado. Se agrega una leyenda a la derecha de la trama secundaria más pequeña en el segundo gráfico.

Especificar la información de ubicación

El PLT.La función de leyenda (), que genera automáticamente una leyenda para cada punto de trama identificado, es el método más fácil para desarrollar una leyenda. Sin embargo, existen numerosos métodos para modificar dicha leyenda. Podemos definir la posición y deshabilitar el marco.

Importar matplotlib.Pyplot como PLT
PLT.estilo.Use ('clásico')
importar numpy como np
x = NP.Linspace (0, 20, 2000)
Fig, Ax = PLT.subtramas ()
hacha.Parcela (X, NP.sin (x), '-b', etiqueta = 'sine')
hacha.Parcela (X, NP.cos (x), '--r', etiqueta = 'cosine')
hacha.eje ('igual')
pierna = hacha.leyenda();
hacha.leyenda (loc = 'superior izquierda', marco = false)
higo
hacha.Legend (FrameON = false, loc = 'Centro inferior', NCOL = 3)
higo
hacha.Legend (Fancybox = True, Framealpha = 1, Shadow = True, BorderPad = 2)
higo

Para averiguar el número de líneas en la leyenda, tenemos que utilizar el comando 'ncol'. También agregamos un tono, ajustamos la visibilidad (valor alfa) del marco o modificamos el espacio alrededor del contenido usando una caja redondeada (FancyBox).

Identificar los elementos de la leyenda

Por defecto, la leyenda comprende todos los elementos etiquetados. Si no es lo que queremos, utilizaremos los elementos proporcionados por los comandos de la trama para ajustar qué componentes y títulos muestran en la leyenda.

Importar matplotlib.Pyplot como PLT
PLT.estilo.Use ('clásico')
importar numpy como np
x = NP.Linspace (0, 16, 2000)
Fig, Ax = PLT.subtramas ()
y = NP.pecado (x [:, np.Newaxis] + NP.PI * NP.Arange (0, 2, 0.5))
Líneas = PLT.Parcela (x, y)
PLT.leyenda (líneas [: 2], ['primero', 'segundo']);
PLT.Plot (x, y [:, 0], etiqueta = 'primero')
PLT.Plot (x, y [:, 1], etiqueta = 'segundo')
PLT.Parcela (x, y [:, 2:])
PLT.leyenda (framealpha = 1, frameON = true);

El PLT.La función plot () puede construir numerosas líneas simultáneamente y proporciona una lista de las líneas que se formaron. Proporcionando cualquiera de estos a PLT.leyenda (), podemos indicar qué elementos localizar y las etiquetas que queremos usar. La leyenda elimina cualquier elemento sin un atributo de título proporcionado por defecto.

Múltiples leyendas

Al crear una trama, es posible que deseemos incluir diferentes leyendas dentro del mismo eje. Sin embargo, matplotlib de alguna manera no lo hace simple. Solo podemos construir una leyenda singular para la trama general utilizando el método de leyenda convencional.

Si queremos usar PLT.leyenda () o hacha.leyenda () para construir una segunda leyenda, luego invocará la primera. Podemos hacer esto agregando un artista de leyenda desde el principio y luego agregando explícitamente el nuevo artista a la trama que usa el hacha de nivel inferior.Técnica Agregar artista ().

Como notamos, el método contiene solo una lógica básica para establecer un artista de leyenda apropiado, que luego se almacenará en el atributo Legend_ e insertado en el gráfico cuando se crea el gráfico cuando se crea el gráfico.

Fuera de la trama

Utilizamos matlotlib para evitar que un marco de leyenda se trunce. Aplicaremos bbox_extra_artists y bbox_inches para asegurarnos de que la leyenda no se recorte. Los artistas bbox_extra indican la lista de artistas que se tendrían en cuenta al calcular el Bbox apretado. Si bbox_inches se ajusta para ser compactos, se crearía un bbox tenso para la figura.

Importar matplotlib.Pyplot como PLT
importar numpy como np
x = NP.Linspace (0, 20, 3)
y = NP.cos (x)
y1 = np.exp (x)
PLT.Plot (x, y, etiqueta = "cos (x)")
PLT.Plot (x, y1, etiqueta = "exp (x)")
Legend_outside = plt.leyenda (bbox_to_anchor = (1.05, 0.0),
loc = 'inferior a la derecha')
PLT.saveFig ('Outside_legend.png ',
DPI = 100,
formato = 'png',
bbox_extra_artists = (Legend_outside,),
bbox_inches = 'apretado')
PLT.espectáculo()

Para el análisis visual, integramos matplotlib.Pyplot como PLT. Luego, para metadatos, incluimos Numpy como NP. Utilizamos las funciones linspace (), cos () y exp () para especificar dimensiones de datos. Estamos utilizando el método trot () para dibujar el gráfico. Utilizamos la función Legend () con el argumento bbox_to_anchor para agregar la leyenda desde el gráfico exterior. El diagrama se guarda como un archivo PNG utilizando el método saveFig (). Proporcionamos los argumentos bbox_extra_artists y bbox_inches al método saveFig () para evitar que la leyenda se trunce.

Conclusión

Aprendemos algunos métodos para ajustar la ubicación de la leyenda en matplotlib en este artículo. La posición predeterminada para la leyenda es "mejor", esto significa que matplotlib identificará una posición para la leyenda que evita oscurecer cualquier conjunto de datos. El parámetro bbox_to_anchor () también podría utilizarse para ubicar la leyenda fuera del gráfico. En este artículo, también discutimos el método para adjuntar diferentes títulos a los componentes de la trama que queremos mostrar en la leyenda. Los valores predeterminados de la leyenda a veces no son suficientes para una visualización particular. Entonces, tal vez utilizaremos valores de puntos para ilustrar aspectos específicos de los datos, por lo que tendremos que construir una leyenda para representar esto. Además, cada lugar de leyenda se puede indicar.