Búsqueda de sitios web

¿Cómo agregar manualmente una leyenda con un cuadro de color en una figura de Matplotlib?


Matplotlib es una popular biblioteca de visualización de datos en Python conocida por su flexibilidad y visualizaciones de alta calidad. Siguiendo este tutorial, aprenderá cómo crear una leyenda con un cuadro de color en su figura de Matplotlib, haciendo que sus visualizaciones sean más informativas y visualmente atractivas.

Antes de profundizar en el código, es importante comprender los diferentes elementos de una leyenda. Una leyenda es una clave que etiqueta los elementos de nuestra trama con diferentes colores, marcadores o líneas. Al agregar una leyenda, podemos comprender los datos que se presentan y facilitar que la audiencia interprete nuestras visualizaciones. En la siguiente sección, veremos la sintaxis para crear una leyenda con un cuadro de color en una figura de Matplotlib.

Sintaxis

Para agregar manualmente una leyenda con un cuadro de color en una figura de Matplotlib en Python, podemos usar la siguiente sintaxis:

# Import libraries
import matplotlib.patches as mpatches

# Creating legend with color box
color_patch = mpatches.Patch(color='red', label='legend')
plt.legend(handles=[color_patch])

En la sintaxis anterior, el cuadro de color se crea utilizando la función mpatches.Patch con el parámetro de color establecido en "rojo". El cuadro de color azul resultante se agrega a la leyenda usando la función plt.legend con el parámetro handles establecido en [color_patch]. Aunque el cuadro de color en sí no es visible en el gráfico, aparece en la leyenda como un rectángulo de color junto al texto de la etiqueta. El tamaño y la forma del cuadro de color se pueden ajustar usando parámetros adicionales en las funciones mpatches.Patch , como ancho de línea, color de borde y color de cara. El siguiente ejemplo lo explica bien.

Ejemplo

En este ejemplo, el primer paso es importar las bibliotecas necesarias, que son matplotlib.patches y matplotlib.pyplot. Luego, creamos un diagrama de líneas simple usando la función plt.plot() y pasamos una lista de coordenadas x e y como argumentos, junto con el color de la línea.

A continuación, configuramos el título de la trama usando la función plt.title(). El objetivo principal de este código es la creación de la leyenda con un cuadro de color. Hacemos esto creando un parche usando la función mpatches.Patch(), que toma varios argumentos como el color del parche, la etiqueta que se mostrará en la leyenda y parámetros adicionales como el ancho de línea y alfa. Luego, creamos un parche color_box con un color rojo y una etiqueta de "Leyenda de ejemplo". También configuramos el ancho de línea en 12 y el alfa en 0,5 para ajustar el tamaño y la transparencia del parche.

Finalmente, agregamos el parche a la leyenda usando la función plt.legend(), pasando el parámetro handles con una lista de parches que se incluirán en la leyenda. También configuramos la ubicación de la leyenda en la esquina "superior derecha" y ajustamos la transparencia del marco con el parámetro framealpha y frameon en True.

En general, al ajustar los parámetros en la función mpatches.Patch(), puede personalizar el tamaño, la forma y el color del cuadro de color para que coincida con sus necesidades de visualización. El gráfico finalmente se muestra usando plt.show() .

import matplotlib.patches as mpatches
import matplotlib.pyplot as plt

# Creating plot
plt.plot([1, 2, 3, 4], color='blue')
plt.title('Example 1')

# Creating legend with color box
color_box = mpatches.Patch(color='red', label='Example Legend', linewidth=12, alpha=0.5)
plt.legend(handles=[color_box], loc='upper right', framealpha=0.5, frameon=True)

# Show plot
plt.show()

Producción

Ejemplo

El ejemplo importa las bibliotecas necesarias, incluido Plotly Express, para importar el conjunto de datos de sugerencias usando la función px.data.tips() y el pyplot y los parches de Matplotlib para construir el gráfico y la leyenda.

El diagrama de dispersión se crea utilizando la función ax.scatter() de matplotlib. El eje x representa el monto total de la factura y el eje y representa el tamaño de la propina. El parámetro 'c' se utiliza para especificar el color de los marcadores según la columna 'sexo' del conjunto de datos de sugerencias. La función .map() se utiliza para asignar los valores de cadena "Mujer" y "Masculino" a los valores de color correspondientes "rojo" y "azul".

Para crear la leyenda en el ejemplo, se utiliza la función mpatches.Patch() para crear manualmente cuadros de color con colores y etiquetas específicos para "Mujer" y "Masculino". Luego, estos parches se agregan al gráfico usando la función plt.legend() junto con los controladores para los parches y la ubicación en el gráfico. La transparencia y la presencia de un marco alrededor de la leyenda también se ajustan utilizando los parámetros framealpha y frameon .

Finalmente, al gráfico se le asigna un título y etiquetas de eje usando plt.title(), plt.xlabel() y plt.ylabel(). Luego, el gráfico se muestra usando plt.show().

import matplotlib.pyplot as plt
import matplotlib.patches as mpatches
import plotly.express as px

# Load tips dataset from plotly.express
tips = px.data.tips()
# Create scatter plot
fig, ax = plt.subplots()
ax.scatter(tips['total_bill'], tips['tip'], c=tips['sex'].map({'Female': 'red', 'Male': 'blue'}))

# Create a legend with a color box
female_patch = mpatches.Patch(color='red', label='Female')
male_patch = mpatches.Patch(color='blue', label='Male')
plt.legend(handles=[female_patch, male_patch], loc='upper left', framealpha=0.5, frameon=True)

# Set plot title and axis labels
plt.title('Total Bill vs Tip by Gender')
plt.xlabel('Total Bill')
plt.ylabel('Tip')

# Show plot
plt.show()

Producción

Conclusión

En conclusión, agregar una leyenda con un cuadro de color a una figura de Matplotlib puede ser una forma útil de representar visualmente los datos y mejorar la legibilidad general de la figura. Podemos modificar el cuadro de color para satisfacer nuestras necesidades utilizando la función mpatches.Patch. Esto incluye cambiar el tamaño, la forma y el color de la caja. La leyenda del cuadro de color se puede agregar a la figura y personalizarla para la ubicación y el aspecto usando la función plt.legend. Trabajar con datos simples o complejos puede beneficiarse del aprendizaje