|
4 weeks ago | |
---|---|---|
.. | ||
README.md | 4 weeks ago |
README.md
Visualizar Proporções
![]() |
---|
Visualizar Proporções - Sketchnote por @nitya |
Nesta lição, vais utilizar um conjunto de dados focado na natureza para visualizar proporções, como, por exemplo, quantos tipos diferentes de fungos estão presentes num determinado conjunto de dados sobre cogumelos. Vamos explorar estes fascinantes fungos utilizando um conjunto de dados obtido da Audubon, que lista detalhes sobre 23 espécies de cogumelos com lâminas das famílias Agaricus e Lepiota. Vais experimentar visualizações interessantes como:
- Gráficos de pizza 🥧
- Gráficos de rosca 🍩
- Gráficos de waffle 🧇
💡 Um projeto muito interessante chamado Charticulator da Microsoft Research oferece uma interface gratuita de arrastar e soltar para visualizações de dados. Num dos seus tutoriais, eles também utilizam este conjunto de dados sobre cogumelos! Assim, podes explorar os dados e aprender a biblioteca ao mesmo tempo: Tutorial do Charticulator.
Questionário pré-aula
Conhece os teus cogumelos 🍄
Os cogumelos são muito interessantes. Vamos importar um conjunto de dados para os estudar:
mushrooms = read.csv('../../data/mushrooms.csv')
head(mushrooms)
Uma tabela é exibida com alguns dados excelentes para análise:
classe | formato-do-chapéu | superfície-do-chapéu | cor-do-chapéu | hematomas | odor | fixação-das-lâminas | espaçamento-das-lâminas | tamanho-das-lâminas | cor-das-lâminas | formato-do-pé | raiz-do-pé | superfície-acima-do-anel | superfície-abaixo-do-anel | cor-acima-do-anel | cor-abaixo-do-anel | tipo-de-véu | cor-do-véu | número-de-aneis | tipo-de-anel | cor-dos-esporos | população | habitat |
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
Venenoso | Convexo | Liso | Castanho | Hematomas | Pungente | Livre | Fechado | Estreito | Preto | Alargado | Igual | Liso | Liso | Branco | Branco | Parcial | Branco | Um | Pendente | Preto | Disperso | Urbano |
Comestível | Convexo | Liso | Amarelo | Hematomas | Amêndoa | Livre | Fechado | Largo | Preto | Alargado | Club | Liso | Liso | Branco | Branco | Parcial | Branco | Um | Pendente | Castanho | Numeroso | Relvados |
Comestível | Sino | Liso | Branco | Hematomas | Anis | Livre | Fechado | Largo | Castanho | Alargado | Club | Liso | Liso | Branco | Branco | Parcial | Branco | Um | Pendente | Castanho | Numeroso | Prados |
Venenoso | Convexo | Escamoso | Branco | Hematomas | Pungente | Livre | Fechado | Estreito | Castanho | Alargado | Igual | Liso | Liso | Branco | Branco | Parcial | Branco | Um | Pendente | Preto | Disperso | Urbano |
Comestível | Convexo | Liso | Verde | Sem Hematomas | Nenhum | Livre | Aglomerado | Largo | Preto | Afunilado | Igual | Liso | Liso | Branco | Branco | Parcial | Branco | Um | Evanescente | Castanho | Abundante | Relvados |
Comestível | Convexo | Escamoso | Amarelo | Hematomas | Amêndoa | Livre | Fechado | Largo | Castanho | Alargado | Club | Liso | Liso | Branco | Branco | Parcial | Branco | Um | Pendente | Preto | Numeroso | Relvados |
De imediato, percebes que todos os dados são textuais. Terás de converter estes dados para os poderes utilizar num gráfico. Na verdade, a maior parte dos dados está representada como um objeto:
names(mushrooms)
O resultado é:
[1] "class" "cap.shape"
[3] "cap.surface" "cap.color"
[5] "bruises" "odor"
[7] "gill.attachment" "gill.spacing"
[9] "gill.size" "gill.color"
[11] "stalk.shape" "stalk.root"
[13] "stalk.surface.above.ring" "stalk.surface.below.ring"
[15] "stalk.color.above.ring" "stalk.color.below.ring"
[17] "veil.type" "veil.color"
[19] "ring.number" "ring.type"
[21] "spore.print.color" "population"
[23] "habitat"
Converte os dados da coluna 'class' para uma categoria:
library(dplyr)
grouped=mushrooms %>%
group_by(class) %>%
summarise(count=n())
Agora, se imprimires os dados dos cogumelos, podes ver que foram agrupados em categorias de acordo com a classe venenoso/comestível:
View(grouped)
classe | contagem |
---|---|
Comestível | 4208 |
Venenoso | 3916 |
Se seguires a ordem apresentada nesta tabela para criar as etiquetas das categorias, podes construir um gráfico de pizza.
Pizza!
pie(grouped$count,grouped$class, main="Edible?")
Voilà, um gráfico de pizza que mostra as proporções destes dados de acordo com estas duas classes de cogumelos. É muito importante garantir que a ordem das etiquetas esteja correta, especialmente aqui, por isso verifica sempre a ordem com que o array de etiquetas é construído!
Roscas!
Um gráfico de pizza um pouco mais interessante visualmente é o gráfico de rosca, que é um gráfico de pizza com um buraco no meio. Vamos observar os nossos dados utilizando este método.
Observa os vários habitats onde os cogumelos crescem:
library(dplyr)
habitat=mushrooms %>%
group_by(habitat) %>%
summarise(count=n())
View(habitat)
O resultado é:
habitat | contagem |
---|---|
Relvados | 2148 |
Folhas | 832 |
Prados | 292 |
Trilhos | 1144 |
Urbano | 368 |
Resíduos | 192 |
Madeira | 3148 |
Aqui, estás a agrupar os teus dados por habitat. Existem 7 listados, por isso utiliza-os como etiquetas para o teu gráfico de rosca:
library(ggplot2)
library(webr)
PieDonut(habitat, aes(habitat, count=count))
Este código utiliza duas bibliotecas - ggplot2 e webr. Usando a função PieDonut da biblioteca webr, podemos criar um gráfico de rosca facilmente!
Os gráficos de rosca em R também podem ser feitos utilizando apenas a biblioteca ggplot2. Podes aprender mais sobre isso aqui e experimentar por ti mesmo.
Agora que sabes como agrupar os teus dados e depois exibi-los como um gráfico de pizza ou rosca, podes explorar outros tipos de gráficos. Experimenta um gráfico de waffle, que é apenas uma forma diferente de explorar quantidades.
Waffles!
Um gráfico do tipo 'waffle' é uma forma diferente de visualizar quantidades como uma matriz 2D de quadrados. Experimenta visualizar as diferentes quantidades de cores do chapéu dos cogumelos neste conjunto de dados. Para isso, precisas de instalar uma biblioteca auxiliar chamada waffle e utilizá-la para gerar a tua visualização:
install.packages("waffle", repos = "https://cinc.rud.is")
Seleciona um segmento dos teus dados para agrupar:
library(dplyr)
cap_color=mushrooms %>%
group_by(cap.color) %>%
summarise(count=n())
View(cap_color)
Cria um gráfico de waffle criando etiquetas e depois agrupando os teus dados:
library(waffle)
names(cap_color$count) = paste0(cap_color$cap.color)
waffle((cap_color$count/10), rows = 7, title = "Waffle Chart")+scale_fill_manual(values=c("brown", "#F0DC82", "#D2691E", "green",
"pink", "purple", "red", "grey",
"yellow","white"))
Usando um gráfico de waffle, podes ver claramente as proporções das cores dos chapéus neste conjunto de dados de cogumelos. Curiosamente, existem muitos cogumelos com chapéus verdes!
Nesta lição, aprendeste três formas de visualizar proporções. Primeiro, precisas de agrupar os teus dados em categorias e depois decidir qual é a melhor forma de exibir os dados - pizza, rosca ou waffle. Todas são deliciosas e oferecem ao utilizador uma visão instantânea de um conjunto de dados.
🚀 Desafio
Tenta recriar estes gráficos deliciosos no Charticulator.
Questionário pós-aula
Revisão e Autoestudo
Por vezes, não é óbvio quando usar um gráfico de pizza, rosca ou waffle. Aqui estão alguns artigos para leres sobre este tema:
https://www.beautiful.ai/blog/battle-of-the-charts-pie-chart-vs-donut-chart
https://medium.com/@hypsypops/pie-chart-vs-donut-chart-showdown-in-the-ring-5d24fd86a9ce
https://www.mit.edu/~mbarker/formula1/f1help/11-ch-c6.htm
Faz alguma pesquisa para encontrares mais informações sobre esta decisão difícil.
Tarefa
Aviso Legal:
Este documento foi traduzido utilizando o serviço de tradução por IA Co-op Translator. Embora nos esforcemos para garantir a precisão, esteja ciente de que traduções automáticas podem conter erros ou imprecisões. O documento original no seu idioma nativo deve ser considerado a fonte autoritativa. Para informações críticas, recomenda-se uma tradução profissional realizada por humanos. Não nos responsabilizamos por quaisquer mal-entendidos ou interpretações incorretas resultantes do uso desta tradução.