Matplotlib é uma poderosa biblioteca Python para criar visualizações. Legendas são essenciais para entender gráficos, e personalizar sua aparência melhora a legibilidade. Este artigo demonstra dois métodos para ajustar a largura das linhas em legendas Matplotlib.
Sumário
- Definindo a Largura da Linha Diretamente com
set_linewidth()
- Usando
matplotlib.pyplot.setp()
para Modificação Concisa - Perguntas Frequentes
Definindo a Largura da Linha Diretamente com set_linewidth()
O método set_linewidth()
oferece controle preciso sobre linhas individuais da legenda. Ele manipula diretamente os legendHandles
da legenda, que são objetos Line2D.
import matplotlib.pyplot as plt
# Dados de exemplo
x = [1, 2, 3, 4, 5]
y1 = [2, 4, 1, 3, 5]
y2 = [1, 3, 5, 2, 4]
# Criar o gráfico
fig, ax = plt.subplots()
line1, = ax.plot(x, y1, label='Linha 1', linewidth=2)
line2, = ax.plot(x, y2, label='Linha 2', linewidth=1)
# Criar a legenda
legend = ax.legend()
# Acessar e modificar a largura da linha
legend.legendHandles[0].set_linewidth(4) # Linha 1 na legenda
legend.legendHandles[1].set_linewidth(3) # Linha 2 na legenda
# Mostrar o gráfico
plt.show()
Este código primeiro plota os dados, então acessa os manipuladores da legenda via legend.legendHandles
. set_linewidth()
ajusta a largura de cada linha. legendHandles[0]
se refere à primeira linha, e assim por diante.
Usando matplotlib.pyplot.setp()
para Modificação Concisa
matplotlib.pyplot.setp()
fornece uma maneira mais compacta de modificar múltiplas propriedades simultaneamente.
import matplotlib.pyplot as plt
# Dados de exemplo (mesmo que antes)
x = [1, 2, 3, 4, 5]
y1 = [2, 4, 1, 3, 5]
y2 = [1, 3, 5, 2, 4]
# Criar o gráfico
fig, ax = plt.subplots()
line1, = ax.plot(x, y1, label='Linha 1', linewidth=2)
line2, = ax.plot(x, y2, label='Linha 2', linewidth=1)
# Criar a legenda
legend = ax.legend()
# Modificar a largura da linha usando setp()
plt.setp(legend.legendHandles, 'linewidth', [4, 3])
# Mostrar o gráfico
plt.show()
plt.setp()
define eficientemente a linewidth
para todos os manipuladores. [4, 3]
especifica a largura para cada linha, na ordem de aparição.
Perguntas Frequentes
P: E se eu tiver mais de duas linhas?
R: Ambos os métodos se adaptam facilmente. Para set_linewidth()
, estenda a indexação. Para setp()
, assegure-se que a lista linewidth
corresponda ao número de manipuladores da legenda.
P: Posso mudar outras propriedades da legenda?
R: Sim, ambos os métodos modificam propriedades como cor, estilo de linha e marcador. Consulte a documentação do Matplotlib.
P: Qual método devo escolher?
R: set_linewidth()
oferece controle granular para linhas individuais. setp()
é mais conciso para modificar a mesma propriedade em todas as linhas. Escolha com base em suas necessidades e estilo de codificação.
Este artigo fornece duas abordagens eficazes para melhorar a clareza e o impacto visual da legenda Matplotlib. Consulte a documentação do Matplotlib para personalizações avançadas.