Cómo establecer el ancho de línea de las líneas en la leyenda Matplotlib

Suraj Joshi 30 enero 2023
  1. Método set_linewidth() para establecer el ancho de línea en Matplotlib legend
  2. Método matplotlib.pyplot.setp() para establecer el ancho de línea en Matplotlib legend
Cómo establecer el ancho de línea de las líneas en la leyenda Matplotlib

Podemos cambiar el ancho de línea de las líneas en la leyenda Matplotlib usando el método set_linewidth() del objeto de leyenda y el método setp() de los objetos artist.

Método set_linewidth() para establecer el ancho de línea en Matplotlib legend

El parámetro linewidth en la función de trazado puede usarse para controlar el ancho del trazado de un objeto particular y el método set_linewidth() puede usarse para controlar el ancho de las líneas de la leyenda en Matplotlib.

import numpy as np
import matplotlib.pyplot as plt

x = np.linspace(-3, 3, 100)
y1 = np.sin(x)
y2 = np.cos(x)

fig, ax = plt.subplots(figsize=(8, 6))

ax.plot(x, y1, c="r", label="sinx", linewidth=3.0)
ax.plot(x, y2, c="g", label="cosx", linewidth=5.0)

leg = plt.legend()

leg.get_lines()[0].set_linewidth(6)
leg.get_lines()[1].set_linewidth(10)

plt.show()

Producción:

establecer el ancho de línea de las líneas de una leyenda en Matplotlib usando el método set_linewidth

El ancho de línea de dos líneas en el diagrama es 3.0 y 5.0 respectivamente, y el ancho de línea de las líneas en la leyenda por defecto usa el mismo ancho de línea que en el diagrama.

leg = plt.legend()

leg.get_lines()[0].set_linewidth(6)

leg es el objeto de la leyenda y leg.get_lines() devuelve la lista de instancias de línea en la leyenda.

set_linewidth() podría cambiar el ancho de línea de la línea de la leyenda para que sea otro valor en lugar de eso en el gráfico.

Método matplotlib.pyplot.setp() para establecer el ancho de línea en Matplotlib legend

El método matplotlib.pyplot.setp() nos permite establecer la propiedad de los objetos pyplot. Podemos usar el parámetro linewidth de la función setp() para establecer el ancho de línea de un objeto de leyenda particular.

import numpy as np
import matplotlib.pyplot as plt

x = np.linspace(-3, 3, 100)
y1 = np.sin(x)
y2 = np.cos(x)

fig, ax = plt.subplots(figsize=(8, 6))

ax.plot(x, y1, c="r", label="sinx", linewidth=3.0)
ax.plot(x, y2, c="g", label="cosx", linewidth=5.0)

leg = plt.legend()

leg_lines = leg.get_lines()
leg_texts = leg.get_texts()

plt.setp(leg_lines[0], linewidth=6)
plt.setp(leg_lines[1], linewidth=12)
plt.setp(leg_texts, fontsize=10)

plt.show()

Producción:

establecer el ancho de línea de las líneas de una leyenda en Matplotlib usando el método setp

Suraj Joshi avatar Suraj Joshi avatar

Suraj Joshi is a backend software engineer at Matrice.ai.

LinkedIn

Artículo relacionado - Matplotlib Legend