Empresas
Empleos
  • Sobre nosotros
  • Soluciones
    • Publicación de vacantes
      Publica tu vacante y recibe candidatos calificados en 48h.
    • Evaluación de candidatos
      500+ pruebas técnicas y psicológicas, más anti-fraude.
    • Headhunting
      Búsqueda ejecutiva a la medida de principio a fin.
    • Nómina + EOR
      Dispersión de nómina y EOR en más de 15 países de LATAM.
  • Precios
  • Empleos

0

495
Vistas
Cambiar el ancho de línea de las líneas en la leyenda de pyplot de matplotlib

Me gustaría cambiar el grosor/ancho de las muestras de línea que aparecen en la leyenda de pyplot.

El ancho de línea de las muestras de línea dentro de la leyenda es el mismo que el de las líneas que representan en el gráfico (por lo que si la línea y1 tiene linewidth=7.0 , la etiqueta y1 correspondiente de la leyenda también tendrá linewidth=7.0 ).

Me gustaría que las líneas de la leyenda fueran más gruesas que las líneas que aparecen en la trama.

Por ejemplo, el siguiente código genera la siguiente imagen:

 import numpy as np import matplotlib.pyplot as plt # make some data x = np.linspace(0, 2*np.pi) y1 = np.sin(x) y2 = np.cos(x) # plot sin(x) and cos(x) fig = plt.figure() ax = fig.add_subplot(111) ax.plot(x, y1, c='b', label='y1',linewidth=7.0) ax.plot(x, y2, c='r', label='y2') leg = plt.legend() plt.show()

gráfico de código de ejemplo

Quiero configurar la etiqueta y1 en la leyenda para que tenga linewidth=7.0 , mientras que la línea y1 que aparece en el gráfico tiene un ancho diferente ( linewidth=1.0 ).

No pude encontrar una solución en línea. Los problemas relacionados tenían respuestas para cambiar el ancho de línea del cuadro delimitador de la leyenda a través de leg.get_frame().set_linewidth(7.0) . Esto no cambia el ancho de línea de las líneas dentro de la leyenda.

over 4 years ago · Santiago Trujillo
1 Respuestas
Responde la pregunta

0

La respuesta de @ImportanceOfBeingErnest es buena si solo desea cambiar el ancho de línea dentro del cuadro de leyenda. Pero creo que es un poco más complejo ya que tienes que copiar los identificadores antes de cambiar el ancho de línea de la leyenda. Además, no puede cambiar el tamaño de fuente de la etiqueta de la leyenda. Los siguientes dos métodos no solo pueden cambiar el ancho de línea, sino también el tamaño de fuente del texto de la etiqueta de leyenda de una manera más concisa.

Método 1

 import numpy as np import matplotlib.pyplot as plt # make some data x = np.linspace(0, 2*np.pi) y1 = np.sin(x) y2 = np.cos(x) # plot sin(x) and cos(x) fig = plt.figure() ax = fig.add_subplot(111) ax.plot(x, y1, c='b', label='y1') ax.plot(x, y2, c='r', label='y2') leg = plt.legend() # get the individual lines inside legend and set line width for line in leg.get_lines(): line.set_linewidth(4) # get label texts inside legend and set font size for text in leg.get_texts(): text.set_fontsize('x-large') plt.savefig('leg_example') plt.show()

Método 2

 import numpy as np import matplotlib.pyplot as plt # make some data x = np.linspace(0, 2*np.pi) y1 = np.sin(x) y2 = np.cos(x) # plot sin(x) and cos(x) fig = plt.figure() ax = fig.add_subplot(111) ax.plot(x, y1, c='b', label='y1') ax.plot(x, y2, c='r', label='y2') leg = plt.legend() # get the lines and texts inside legend box leg_lines = leg.get_lines() leg_texts = leg.get_texts() # bulk-set the properties of all lines and texts plt.setp(leg_lines, linewidth=4) plt.setp(leg_texts, fontsize='x-large') plt.savefig('leg_example') plt.show()

Los dos métodos anteriores producen la misma imagen de salida:

imagen de salida

over 4 years ago · Santiago Trujillo Denunciar
Responde la pregunta
Encuentra empleos remotos

¡Descubre la nueva forma de encontrar empleo!

Top de empleos
Top categorías de empleo
Empresas
Publicar vacante Precios Comercial
Legal
Términos y condiciones Política de privacidad
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomiéndame algunas ofertas
Necesito ayuda