Matplotlib es un excelente 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 del paquete matplotlib que se utiliza para mostrar una leyenda en los gráficos. El parámetro loc en el método legend() se puede usar para especificar la ubicación de la leyenda. Loc=»mejor» es el valor predeterminado (arriba a la izquierda). La leyenda está mejor posicionada por los parámetros arriba a la derecha, arriba a la izquierda, abajo a la izquierda, derecha, abajo a la derecha, medio a la izquierda, abajo al centro, medio a la derecha y arriba al medio en la posición correspondiente de los números. Las leyendas de la trama brindan un contexto visual al implementar buenos componentes de la trama.
En este artículo, exploremos cómo personalizar el posicionamiento y la estética de la leyenda en Matplotlib.
Tabla de Contenidos
lugar de leyenda
El término «loc» como parámetro podría usarse para indicar la ubicación de la leyenda. En este caso vemos el método de cómo encontrar la leyenda.
importar sordo como notario público
Cobarde, ax_dict = por favorsubtrama_mosaico([[‘top’, ‘top’], [‘bottom’, ‘BLANK’]],
centinela_vacío=«VACÍO»)
ax_dict[‘top’].Gráfico([2, 3, 4], etiqueta=«etiqueta1»)
ax_dict[‘top’].Gráfico([4, 3, 2], etiqueta=«etiqueta2»)
ax_dict[‘top’].Leyenda(bbox_to_anchor=(., 1.02, 1., .102), localización=‘Abajo a la izquierda’,
ncol=2, modo=«extender», Almohadilla de hacha fronteriza=.)
ax_dict[‘bottom’].Gráfico([2, 3, 4], etiqueta=«etiqueta1»)
ax_dict[‘bottom’].Gráfico([4, 3, 2], etiqueta=«etiqueta2»)
ax_dict[‘bottom’].Leyenda(bbox_to_anchor=(1.05, 1),
localización=‘Arriba a la izquierda’, Almohadilla de hacha fronteriza=.)
por favorshow()
El comando bbox_to_anchor nos permite mucha flexibilidad para posicionar las leyendas manualmente. Si queremos que la leyenda de los ejes aparezca en la parte superior derecha del modelo y no en el borde de los ejes, simplemente especificamos la ubicación de la esquina y la posición tridimensional.
Se inserta una leyenda inmediatamente después de la trama secundaria y se expande. También utilizamos el cuadro delimitador provisto. Se agrega una leyenda a la derecha de la subparcela más pequeña en el segundo gráfico.
Proporcione la información de ubicación
La forma más sencilla de desarrollar una leyenda es utilizar la función plt.legend(), que genera automáticamente una leyenda para cada punto de trazado identificado. Sin embargo, existen numerosos métodos para modificar dicha leyenda. Podemos definir la posición y deshabilitar el borde.
por favorestilo.usar(‘clásico’)
importar sordo como notario público
X = notario público.espacio(, 20, 2000)
Cobarde, Hacha = por favorsubtramas()
Hacha.Gráfico(X, notario público.pecado(X), ‘-b’, etiqueta=‘Seno’)
Hacha.Gráfico(X, notario público.porque(X), ‘–r’, etiqueta=‘Coseno’)
Hacha.eje(‘mismo’)
pierna = Hacha.Leyenda();
Hacha.Leyenda(localización=‘Arriba a la izquierda’, marco=INCORRECTO)
Cobarde
Hacha.Leyenda(marco=INCORRECTO, localización=‘medio bajo’, ncol=3)
Cobarde
Hacha.Leyenda(caja elegante=Verdadero, marco alfa=1, La sombra=Verdadero, interfaz=2)
Cobarde
Para averiguar el número de filas en la leyenda, necesitamos usar el comando ‘ncol’. También agregamos sombreado, ajustamos la visibilidad del borde (valor alfa) o cambiamos el espaciado alrededor del contenido usando un cuadro redondeado (cuadro elegante).
Identificación de los elementos de la leyenda
De forma predeterminada, la leyenda incluye todos los elementos etiquetados. Si no es lo que queremos, usamos los elementos proporcionados por los comandos de trazado para afinar qué componentes y títulos se muestran en la leyenda.
por favorestilo.usar(‘clásico’)
importar sordo como notario público
X = notario público.espacio(, dieciséis, 2000)
Cobarde, Hacha = por favorsubtramas()
j = notario público.pecado(X[:, np.newaxis] + noPi *notario público.arreglar(, 2, 0.5))
líneas = por favorGráfico(X, j)
por favorLeyenda(líneas[:2], [‘first’, ‘second’]);
por favorGráfico(X, j[:, ], etiqueta=‘Primero’)
por favorGráfico(X, j[:, 1], etiqueta=‘segundo’)
por favorGráfico(X, j[:, 2:])
por favorLeyenda(marco alfa=1, marco=Verdadero);
La función plt.plot() puede construir varias líneas al mismo tiempo y devuelve una lista de las líneas creadas. Al proporcionar plt.legend() con uno de estos, podemos especificar qué elementos localizar, así como las etiquetas que queremos usar. La leyenda elimina todos los elementos sin un atributo de título proporcionado por defecto.
Múltiples Leyendas
Al crear un gráfico, es posible que deseemos incluir diferentes leyendas dentro del mismo eje. Sin embargo, matplotlib de alguna manera no lo hace fácil. Solo podemos construir una leyenda singular para el arco narrativo general utilizando el método de leyenda tradicional.
Si queremos usar plt.legend() o ax.legend() para crear una segunda leyenda, se llamará a la primera. Podemos hacer esto agregando un artista de leyenda desde el principio y luego agregando explícitamente el nuevo artista a la trama usando la técnica ax.add artist() de nivel inferior.
Como notamos, el método contiene solo la lógica básica para crear un artista de leyenda apropiado, que luego se almacena en el atributo legend_ y se inserta en el gráfico cuando se crea el gráfico.
Fuera de la propiedad
Usamos matplotlib para evitar que se recorte un borde de leyenda. Aplicamos bbox_extra_artists y bbox_inches para garantizar que la leyenda no se trunque. Los artistas de Bbox_extra especifican la lista de artistas que se considerarían en el cálculo estricto de bbox. Ajustar bbox_inches de forma compacta crearía un bbox reforzado para la figura.
importar matplotlib.pyplot como por favor
importar sordo como notario público
X = notario público.espacio(, 20, 3)
j = notario público.porque(X)
y1 = notario público.ex(X)
por favorGráfico(X, j, etiqueta=«cos(x)»)
por favorGráfico(X, y1, etiqueta=«exp(x)»)
leyenda_fuera = por favorLeyenda(bbox_to_anchor=(1.05, 0.0),
localización=‘abajo a la derecha’)
por favorguardarfig(‘fuera_leyenda.png’,
ppp=100,
formato=‘png’,
bbox_extra_artista=(leyenda_fuera,),
bbox_pulgadas=‘Celebracion’)
por favorshow()
Para el análisis visual, integramos matplotlib.pyplot como plt. Luego, para los metadatos, incluimos numpy como np . Usamos las funciones linspace(), cos() y exp() para especificar las dimensiones de los datos. Usamos el método plot() para dibujar el gráfico. Usamos la función legend() con el argumento bbox_to_anchor para agregar la leyenda del gráfico externo. Luego, la trama 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 truncar la leyenda.
Conclusión
En este artículo, aprenderemos algunos métodos para ajustar la posición de la leyenda en Matplotlib. La posición predeterminada de la leyenda es «mejor», lo que significa que Matplotlib identificará una posición de leyenda que evite que los conjuntos de datos se oscurezcan. El parámetro bbox_to_anchor() también podría usarse para ubicar la leyenda fuera del gráfico. En este artículo, también discutimos el método de adjuntar diferentes títulos a los componentes de la historia que queremos mostrar en la leyenda. Los valores predeterminados de la leyenda a veces son insuficientes para una visualización en particular. Luego, tal vez usemos valores de puntos para ilustrar ciertos aspectos de los datos, por lo que debemos crear una leyenda para representar eso. Además, se puede especificar cualquier ubicación de leyenda.