5.6. Análise Exploratória de Dados com Matplotlib e Seaborn: Visualização de Dados Categóricos
A análise exploratória de dados (EDA) é um passo crucial no ciclo de vida de projetos de Machine Learning e Deep Learning. Ela permite que cientistas de dados compreendam melhor os padrões, as relações e as anomalias presentes nos dados. A visualização de dados é uma ferramenta poderosa na EDA, e bibliotecas como Matplotlib e Seaborn são essenciais para criar representações gráficas que facilitam a interpretação dos dados.
Visualização de Dados Categóricos
Dados categóricos são variáveis que contêm rótulos em vez de valores numéricos. A visualização desses dados é fundamental para entender a distribuição e a relação entre diferentes categorias. Matplotlib e Seaborn oferecem várias opções para visualizar dados categóricos de forma eficaz.
Gráficos de Barras
O gráfico de barras é uma das visualizações mais comuns para dados categóricos. Ele exibe a frequência ou a proporção de cada categoria, facilitando a comparação entre elas. No Matplotlib, você pode criar um gráfico de barras usando a função bar()
, enquanto no Seaborn, a função countplot()
é uma maneira prática de criar gráficos de barras que mostram a contagem de observações em cada categoria.
import matplotlib.pyplot as plt
import seaborn as sns
# Dados categóricos de exemplo
categorias = ['Categoria A', 'Categoria B', 'Categoria C']
valores = [10, 20, 30]
# Gráfico de barras com Matplotlib
plt.bar(categorias, valores)
plt.title('Gráfico de Barras com Matplotlib')
plt.xlabel('Categorias')
plt.ylabel('Valores')
plt.show()
# Gráfico de barras com Seaborn
sns.countplot(x='categoria', data=df)
plt.title('Gráfico de Barras com Seaborn')
plt.xlabel('Categorias')
plt.ylabel('Contagem')
plt.show()
Gráficos de Caixa (Boxplots)
Os boxplots são excelentes para visualizar a distribuição de dados numéricos agrupados por categorias. Eles mostram a mediana, os quartis e os valores atípicos, proporcionando uma compreensão rápida da variabilidade dos dados. No Matplotlib, você pode usar a função boxplot()
, e no Seaborn, a função boxplot()
também está disponível com recursos adicionais.
# Boxplot com Matplotlib
plt.boxplot([dados_categoria_A, dados_categoria_B, dados_categoria_C])
plt.title('Boxplot com Matplotlib')
plt.xlabel('Categorias')
plt.ylabel('Valores')
plt.xticks([1, 2, 3], categorias)
plt.show()
# Boxplot com Seaborn
sns.boxplot(x='categoria', y='valor', data=df)
plt.title('Boxplot com Seaborn')
plt.xlabel('Categorias')
plt.ylabel('Valores')
plt.show()
Gráficos de Violino (Violin Plots)
Os violin plots combinam características de boxplots e gráficos de densidade de kernel. Eles fornecem uma visão mais rica da distribuição dos dados, mostrando a densidade de probabilidade em diferentes valores. O Seaborn tem uma função violinplot()
dedicada para criar esses gráficos.
# Violin plot com Seaborn
sns.violinplot(x='categoria', y='valor', data=df)
plt.title('Violin Plot com Seaborn')
plt.xlabel('Categorias')
plt.ylabel('Valores')
plt.show()
Gráficos de Enxame (Swarm Plots)
Swarm plots são uma alternativa aos gráficos de pontos que evitam a sobreposição de pontos, facilitando a visualização da distribuição e da quantidade de dados em cada categoria. No Seaborn, você pode criar um swarm plot com a função swarmplot()
.
# Swarm plot com Seaborn
sns.swarmplot(x='categoria', y='valor', data=df)
plt.title('Swarm Plot com Seaborn')
plt.xlabel('Categorias')
plt.ylabel('Valores')
plt.show()
Gráficos de Contagem (Count Plots)
Count plots são uma forma de gráfico de barras que mostra a contagem de observações em cada categoria. No Seaborn, a função countplot()
é usada para criar esses gráficos de maneira rápida e intuitiva.
# Count plot com Seaborn
sns.countplot(x='categoria', data=df)
plt.title('Count Plot com Seaborn')
plt.xlabel('Categorias')
plt.ylabel('Contagem')
plt.show()
Personalização e Estilização de Gráficos
Tanto Matplotlib quanto Seaborn permitem personalizações extensivas nos gráficos. Você pode ajustar cores, estilos de linha, marcadores e muitos outros aspectos para melhorar a apresentação e a legibilidade dos gráficos. O Seaborn também oferece estilos de tema que podem ser aplicados globalmente para uma aparência consistente e profissional.
# Personalizando gráficos com Matplotlib
plt.bar(categorias, valores, color='skyblue')
plt.title('Gráfico Personalizado com Matplotlib')
plt.xlabel('Categorias')
plt.ylabel('Valores')
# Alterando o estilo e a cor da fonte do título
plt.title('Gráfico Personalizado', fontsize=14, color='darkred')
plt.show()
# Aplicando estilos de tema no Seaborn
sns.set_theme(style='whitegrid')
sns.countplot(x='categoria', data=df, palette='pastel')
plt.title('Gráfico com Estilo de Tema Seaborn')
plt.xlabel('Categorias')
plt.ylabel('Contagem')
plt.show()
Conclusão
A visualização de dados categóricos é uma etapa essencial na análise exploratória de dados. Matplotlib e Seaborn são duas bibliotecas poderosas que oferecem uma ampla gama de opções para criar gráficos informativos e atraentes. Ao utilizar essas ferramentas, você pode obter insights valiosos sobre os dados e comunicar efetivamente suas descobertas.
Em resumo, a capacidade de visualizar e interpretar dados categóricos é um aspecto importante do trabalho com Python para Machine Learning e Deep Learning. A prática contínua com essas bibliotecas e a experimentação com diferentes tipos de gráficos aprimorará suas habilidades de EDA e ajudará a garantir que suas análises sejam fundamentadas em uma compreensão sólida dos dados subjacentes.