Os gráficos de violino são uma ferramenta poderosa para visualizar a distribuição de dados e comparar diferentes conjuntos de dados. Eles combinam aspectos de boxplots e histogramas, oferecendo uma visão mais rica da estrutura dos dados. Neste tutorial, vamos aprender a criar gráficos de violino em Python utilizando a biblioteca Seaborn, que é construída sobre o Matplotlib e oferece uma interface de alto nível para desenhar gráficos estatísticos atraentes.
Introdução aos Gráficos de Violino em Python
Antes de mergulharmos na programação, vamos entender o que é um gráfico de violino. Imagine que você tem um conjunto de dados e quer entender como os valores estão distribuídos.
O gráfico de violino mostra essa distribuição de forma visual, onde a largura do “violino” indica a densidade de pontos nessa região, se assemelhando a um histograma. Somado a isso, um gráfico de violino inclui a mesma representação de dados de um boxplot, com uma linha indicando a mediana.
Preparando o Ambiente
Para começar, você precisará ter o Python instalado em sua máquina, além das bibliotecas Numpy, Matplotlib e Seaborn. Se ainda não as tem, você pode instalá-las usando o pip
, o gerenciador de pacotes do Python:
pip install numpy matplotlib seaborn
Carregando os Dados
Vamos começar importando as bibliotecas necessárias e carregando os dados que queremos visualizar. Para este exemplo, vamos criar um conjunto de dados fictícios de idade e profissão (vamos usar a biblioteca random
do Python para gerar os valores):
import random
import pandas as pd
import seaborn as sns
import matplotlib.pyplot as plt
# Gerando os dados
n_valores = 1000
idades = [random.gauss(45, 10) for _ in range(n_valores)]
profissoes = random.choices(['Engenheiro', 'Médico', 'Artista'], k=n_valores)
# Criando o dataset
df = pd.DataFrame({
'Idade': idades,
'Profissão': profissoes,
})
print(df.head())
A cara do nosso conjunto de dados está logo abaixo (os valores serão diferentes se você executar devido à aleatoriedade do módulo random
):
# Idade Profissão
# 0 43.022382 Artista
# 1 22.646138 Engenheiro
# 2 48.335019 Artista
# 3 36.184013 Artista
# 4 37.912867 Médico
Criando o Gráfico de Violino em Python
Agora que temos nossos dados, podemos criar o gráfico de violino:
# Configurando o estilo do Seaborn
sns.set(style="whitegrid")
# Criando o gráfico de violino
sns.violinplot(y='Idade', data=df)
# Adicionando título e nomes aos eixos
plt.title('Distribuição de Idade')
plt.xlabel('Densidade')
plt.ylabel('Idade')
# Exibindo o gráfico
plt.show()
Este código gera a figura abaixo:
Como podemos ver, o gráfico deixa claro que a maior parte dos indivíduos dessa população possui entre 40 e 50 anos, enquanto poucos indivíduos possuem menos de 20 ou mais de 80 anos.
Personalizando o Gráfico de Violino
O Seaborn permite personalizar o gráfico de várias maneiras. Por exemplo, se quisermos comparar a distribuição de idade entre as profissões, podemos adicionar a dimensão correspondente no eixo X:
sns.violinplot(x='Profissão', y='Idade', data=df)
plt.show()
Além disso, podemos ajustar a suavidade ou rugosidade das “curvas” do violino usando o parâmetro bw
.
sns.violinplot(x='Profissão', y='Idade', data=df, bw=0.1)
plt.show()
Se você quiser saber mais sobre outros parâmetros que ajudam a configurar os gráficos de violinos em Python, acesse a documentação da função seaborn.violinplot.
Conclusão
Parabéns! Agora você sabe como criar um gráfico de violino em Python. Como você pode imaginar, esta é uma habilidade valiosa para qualquer pessoa que trabalha com análise de dados, pois permite comunicar informações complexas de forma clara e visual. Lembre-se de que a prática leva à perfeição, então continue explorando seus dados e as opções de personalização que a biblioteca Seaborn oferece!
Cursos de programação gratuitos com certificado
Aprenda a programar e desenvolva soluções para o seu trabalho com Python para alcançar novas oportunidades profissionais. Aqui na Asimov você encontra:
- Conteúdos gratuitos
- Projetos práticos
- Certificados
- +20 mil alunos e comunidade exclusiva
- Materiais didáticos e download de código
Comentários