Data Visualization

Dominando o Matplotlib: Adicionando e Personalizando Rótulos do Segundo Eixo Y

Spread the love

Matplotlib é uma poderosa biblioteca Python para criação de visualizações. Embora rotular o eixo y principal seja simples, adicionar um rótulo a um eixo y secundário requer uma abordagem ligeiramente diferente. Este artigo o guiará pelo processo, cobrindo técnicas básicas e de personalização avançadas.

Sumário

Entendendo os Eixos Y no Matplotlib

Gráficos Matplotlib geralmente têm um único eixo y representando a variável dependente. No entanto, ao comparar conjuntos de dados com escalas muito diferentes, usar um eixo y principal e um secundário melhora a legibilidade. Cada eixo pode ser personalizado independentemente com rótulos, marcas e muito mais.

Adicionando um Rótulo ao Eixo Y Secundário

A função twinx() do Matplotlib cria um eixo y secundário compartilhando o mesmo eixo x. O rótulo é então definido usando o método set_ylabel() neste novo objeto de eixo.

import matplotlib.pyplot as plt

# Dados de exemplo
x = [1, 2, 3, 4, 5]
y1 = [2, 4, 1, 3, 5]
y2 = [10, 20, 15, 25, 30]

# Cria a figura e os eixos
fig, ax1 = plt.subplots()

# Plota o primeiro conjunto de dados
ax1.plot(x, y1, color='blue', label='Conjunto de Dados 1')
ax1.set_xlabel('Eixo X')
ax1.set_ylabel('Rótulo do Eixo Y1', color='blue')
ax1.tick_params('y', labelcolor='blue')
ax1.legend(loc='upper left')


# Cria o eixo y secundário
ax2 = ax1.twinx()

# Plota o segundo conjunto de dados
ax2.plot(x, y2, color='red', label='Conjunto de Dados 2')
ax2.set_ylabel('Rótulo do Eixo Y2', color='red')  # Rótulo para o eixo y secundário
ax2.tick_params('y', labelcolor='red')
ax2.legend(loc='upper right')


plt.title('Gráfico com Eixo Y Secundário')
plt.show()

Personalizando o Rótulo do Eixo Y

Você pode personalizar a aparência do rótulo:

  • Tamanho da fonte: ax2.set_ylabel('Rótulo', fontsize=14)
  • Família da fonte: ax2.set_ylabel('Rótulo', fontfamily='serif')
  • Rotação: ax2.set_ylabel('Rótulo', rotation=270)
  • Formatação LaTeX: ax2.set_ylabel(r'$Delta$Rótulo')

Usando Pandas DataFrames

Com Pandas, o processo é semelhante:

import pandas as pd
import matplotlib.pyplot as plt

data = {'x': [1, 2, 3, 4, 5], 'y1': [2, 4, 1, 3, 5], 'y2': [10, 20, 15, 25, 30]}
df = pd.DataFrame(data)

fig, ax1 = plt.subplots()
df.plot(x='x', y='y1', ax=ax1, color='blue', label='Conjunto de Dados 1')
ax1.set_ylabel('Rótulo do Eixo Y1', color='blue')
ax1.legend(loc='upper left')

ax2 = ax1.twinx()
df.plot(x='x', y='y2', ax=ax2, color='red', label='Conjunto de Dados 2')
ax2.set_ylabel('Rótulo do Eixo Y2', color='red')
ax2.legend(loc='upper right')

plt.show()

Conclusão

Adicionar e personalizar rótulos de eixos y secundários no Matplotlib melhora a clareza da visualização de dados. twinx() e set_ylabel() são suas ferramentas principais para criar gráficos informativos e visualmente atraentes.

FAQ

  • P: Múltiplos eixos y secundários? R: Sim, mas eixos excessivos podem prejudicar a legibilidade.
  • P: Ajustando limites? R: Use ax2.set_ylim(ymin, ymax).
  • P: Escalas diferentes? R: Eixos y secundários são projetados para isso; o Matplotlib cuida da escala.

Deixe um comentário

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