SÉRIE DE GRÁFICOS: GRÁFICO DE VIOLINO
Olá, Letícia da Minha Estatística aqui :). Click here to go to the post in English.
Essa vai ser a primeira série do blog e é tudo sobre gráficos. Vou postar toda segunda sobre um tipo de gráfico, que você pode fazer através do R ou Python (vou incluir resoluções para dos dois em cada post). O objetivo é aprender sobre quando e como um tipo de gráfico deve e pode ser aplicado, dependendo do tipo de dado que você tem. Então vamos começar!
O gráfico a inaugurar esta série é o Gráfico de Violino. Este gráfico é usado para dados numéricos para comparar as estimativas da densidade entre diferentes grupos, ou de uma variável em relação a um denominador comum que compartilham. Onde cada violino é um grupo e a densidade mostrada representa a estimativa de densidade do núcleo (ou estimativa de densidade kernel (KDE)), o que significa que os dados são transformados (ou seja, suavizados) seja para melhor visualização ou melhor ajuste, tornando-o adequado também para conjunto de dados grandes. O valor da suavização é algo que pode ser determinado ao longo do processo.
O plot tem partes maiores onde os dados são mais frequentes ou mais densos, e partes menores onde ocorre o oposto, mostrando e proporcionando uma visão completa da distribuição. Ele pode ser apresentado com um boxplot dentro, com diferentes cores e legendas indicando o valor da densidade, ou não. A seguir, o gráfico será criado em R usando ggplot2, e depois em Python com Seaborn e Matplotlib.
1) Gráfico em R
Note que o ggplot2 espera que os dados de entrada estejam no formato longo, em que cada linha representa uma observação. Para criar o gráfico, é preciso de uma variável categórica (factor) para o eixo x e uma variável numérica para o eixo y, o que significa que cada variável deve estar em uma coluna.
Alguns ajustes que podem ser feitos incluem alterações nas configurações padrão, como modificar o intervalo e a escala dos violinos para melhorar a visualização. O intervalo é baseado nas estimativas mínimas e no máximas de densidade, então, ao definir trim = FALSE, as caudas dos violinos se tornam mais longas,estendendo-se ao intervalo completo dos dados no eixo y, assumindo também esses valores. O argumento scale, por padrão, é "area", o que significa que a área de cada violino é a mesma e não corresponde ao número de observações e definindo scale = "count", a largura do violino torna-se proporcional ao número de observações em cada grupo, enquanto com scale = "width", todos os violinos vão ter a mesma largura máxima e o que vai mudar são suas densidades.
Outro aspecto importante do Gráfico de Violino, como mencionado anteriormente, é a suavização, que pode ser ajustada com adjust, lembrando que por padrão adjust = 1.
Adicionando um boxplot:
Acredito que cubri os conceitos essenciais e o código necessário para criar um gráfico de violino em R. A seguir, vou mostrar como criar o mesmo gráfico em Python.
2) Gráfico em Python
Comece importando as bibliotecas para os dados, matplotlib e seaborn:
Em Python, os argumentos usados para personalização e ajustes são principalmente o density_norm que aceita 'width' que significa que os violinos serão exibidos de acordo com suas densidades, 'area' onde todos terão o mesmo tamanho, desconsiderando o número de observações em cada variável e 'count' onde a largura corresponde ao número de observações. Para controlar o comprimento do violino, o argumento cut determina o quão longe os violinos se extendem no eixo y (se o gráfico estiver na vertical).
Por fim, o valor para suavização, que por padrão é = 1, pode ser personalizado com bw_method; a versão do Python que estou utilizando atualmente é 3.11.19.
O gráfico também pode ser criado usando somente o Matplotlib, especialmente quando estiver trabalhando com dados list ou array. Neste caso, os dados precisam estar em um desses formatos, ao invés de um DataFrame. Usar o Matplotlib é uma boa escolha se não há necessidade de personalizar argumentos como density_norm, cut, ou bw_method:
Conclusão
Neste post, nós exploramos como visualizar distribuições de dados usando Gráficos de Violino com R e Python. Discutimos como gerar esses gráficos usando Matplotlib e Seaborn no Python, além de explocar como gráficos similares podem ser criados no R utilizando suas poderosas bibliotecas para visualização.
No Python, o Matplotlib é excelente para gerar rapidamente gráficos de violino com personalização mínima, enquanto o Seaborn oferece mais controle para criar visualizações detalhadas e personalizadas. No R, bibliotecas como o ggplot2 oferecem capacidades igualmente eficazes e flexíveis para a criação de gráficos.
Agora, você tem uma compreensão mais clara de como criar Gráficos de Violino tanto em R quanto em Python, permitindo que você entenda e escolha a melhor ferramenta para si e qual mais adequada para suas necessidades de visualização de dados.
Espero que tenha gostado deste post, como é apenas o começo da nossa Série de Gráficos!
Obrigado por estar aqui e sinta-se à vontade para comentar com perguntas ou sugestões! Fique ligado para mais insights na próxima semana,
Letícia - Minha Estatística.




Comentários
Postar um comentário