Como mudar a largura de linha das linhas em Matplotlib Legend

Suraj Joshi 30 janeiro 2023 1 novembro 2020
  1. set_linewidth() Método para definir a largura da linha no Matplotlib legend
  2. matplotlib.pyplot.setp() Método para definir a largura da linha em Matplotlib legend
Como mudar a largura de linha das linhas em Matplotlib Legend

Podemos alterar a largura (espessura da linha) de linhas na legenda Python Matplotlib utilizando o método set_linewidth() do objeto da legenda e o método setp() dos objetos artist.

set_linewidth() Método para definir a largura da linha no Matplotlib legend

O parâmetro linewidth na função de trama pode ser utilizado para controlar a largura da trama de um determinado objeto, e o método set_linewidth() pode ser utilizado para controlar a largura das linhas da legenda em 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() 

Resultado:

definir a largura de linha das linhas de uma legenda no Matplotlib usando o método set_linewidth

A largura de linha de duas linhas no gráfico Python Matplotlib são 3.0 e 5.0 respectivamente, e a largura de linha de linhas na legenda por padrão utiliza a mesma largura de linha do gráfico.

leg = plt.legend()

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

O leg é o objeto Python Matplotlib legend e leg.get_lines() retorna a lista de instâncias de linha na legenda.

A set_linewidth() poderia alterar a largura da linha (espessura da linha) da linha da legenda para ser outro valor ao invés do que está no gráfico.

matplotlib.pyplot.setp() Método para definir a largura da linha em Matplotlib legend

O método matplotlib.pyplot.setp() nos permite definir a propriedade dos objetos pyplot. Podemos utilizar o parâmetro linewidth da função setp() para definir a largura da linha de um determinado objeto lendário.

 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() 

Resultado:

definir largura de linha de linhas de uma legenda em Matplotlib utilizando o método setp

Author: Suraj Joshi
Suraj Joshi avatar Suraj Joshi avatar

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

LinkedIn

Artigo relacionado - Matplotlib Legend