Gráficos de dispersão são uma ferramenta poderosa para visualizar relações entre duas variáveis. No entanto, às vezes é útil aprimorar a visualização conectando os pontos de dados com linhas, enfatizando tendências e padrões. Este tutorial explora vários métodos para alcançar isso no Matplotlib, focando na clareza e nas melhores práticas.
Sumário
- Combinando
scatter()
eplot()
- Personalizando Estilos de Linha com
plot()
- Controlando a Ordem das Camadas com
zorder
Combinando scatter()
e plot()
A abordagem mais direta é usar as funções scatter()
e plot()
. Isso permite o controle independente da aparência dos pontos e das linhas de conexão. Crucialmente, certifique-se de que plt.show()
seja chamado *após* ambas as funções para exibir corretamente ambos os elementos.
import matplotlib.pyplot as plt
import numpy as np
# Dados de exemplo
x = np.array([1, 2, 3, 4, 5])
y = np.array([2, 4, 1, 3, 5])
# Criar o gráfico de dispersão
plt.scatter(x, y, color='blue', label='Pontos de Dados')
# Conectar os pontos com uma linha
plt.plot(x, y, color='red', linestyle='-', linewidth=2, label='Linha de Tendência')
# Adicionar rótulos e legenda
plt.xlabel("Eixo X")
plt.ylabel("Eixo Y")
plt.title("Gráfico de Dispersão com Linha de Conexão")
plt.legend()
# Mostrar o gráfico
plt.show()
Personalizando Estilos de Linha com plot()
A função matplotlib.pyplot.plot()
fornece controle extensivo sobre a estética da linha. O atributo linestyle
permite especificar vários estilos de linha (sólida, tracejada, pontilhada, etc.), enquanto outros parâmetros como color
e linewidth
refinam ainda mais a aparência. Marcadores podem ser adicionados para destacar pontos de dados diretamente na linha.
import matplotlib.pyplot as plt
import numpy as np
x = np.array([1, 2, 3, 4, 5])
y = np.array([2, 4, 1, 3, 5])
plt.plot(x, y, linestyle='--', color='green', marker='o', markersize=8, label='Linha Personalizada')
plt.xlabel("Eixo X")
plt.ylabel("Eixo Y")
plt.title("Gráfico de Linha Personalizado")
plt.legend()
plt.show()
Controlando a Ordem das Camadas com zorder
Ao combinar scatter()
e plot()
, a ordem de desenho pode nem sempre corresponder à ordem de execução. O parâmetro de palavra-chave zorder
controla a ordem de empilhamento dos elementos do gráfico. Valores zorder
mais altos são desenhados por cima. Isso é vital para garantir que os pontos de dispersão sejam claramente visíveis mesmo quando sobrepostos a uma linha.
import matplotlib.pyplot as plt
import numpy as np
x = np.array([1, 2, 3, 4, 5])
y = np.array([2, 4, 1, 3, 5])
# Linha plotada primeiro, atrás dos pontos de dispersão
plt.plot(x, y, zorder=1, color='purple', label='Tendência Subjacente')
# Pontos de dispersão plotados por cima
plt.scatter(x, y, zorder=2, color='orange', label='Pontos de Dados')
plt.xlabel("Eixo X")
plt.ylabel("Eixo Y")
plt.title("Controlando a Ordem das Camadas com zorder")
plt.legend()
plt.show()
Dominando essas técnicas, você pode criar visualizações claras, informativas e visualmente atraentes que comunicam efetivamente tanto os pontos de dados individuais quanto as tendências gerais dentro dos seus dados.