Data Visualization

Dominando Legendas no Matplotlib: Dois Métodos para Ajustar a Espessura da Linha

Spread the love

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

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.

Deixe um comentário

O seu endereço de email não será publicado. Campos obrigatórios marcados com *