You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

12 KiB

Visualizando Proporções

 Sketchnote por (@sketchthedocs)
Visualizando Proporções - Sketchnote por @nitya

Nesta lição, você usará um conjunto de dados com foco na natureza para visualizar proporções, como a quantidade de diferentes tipos de fungos presentes em um conjunto de dados sobre cogumelos. Vamos explorar esses fascinantes fungos usando um conjunto de dados da Audubon que lista detalhes sobre 23 espécies de cogumelos com lamelas das famílias Agaricus e Lepiota. Você 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. Em um de seus tutoriais, eles também usam este conjunto de dados de cogumelos! Assim, você pode explorar os dados e aprender a biblioteca ao mesmo tempo: Tutorial do Charticulator.

Quiz pré-aula

Conheça seus cogumelos 🍄

Cogumelos são muito interessantes. Vamos importar um conjunto de dados para estudá-los:

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 machucados odor fixação das lamelas espaçamento das lamelas tamanho das lamelas cor das lamelas formato do caule raiz do caule 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 anéis tipo de anel cor do esporo população habitat
Venenoso Convexo Liso Marrom Machucado Pungente Livre Fechado Estreito Preto Alargado Igual Liso Liso Branco Branco Parcial Branco Um Pendente Preto Espalhado Urbano
Comestível Convexo Liso Amarelo Machucado Amêndoa Livre Fechado Largo Preto Alargado Club Liso Liso Branco Branco Parcial Branco Um Pendente Marrom Numeroso Gramíneas
Comestível Sino Liso Branco Machucado Anis Livre Fechado Largo Marrom Alargado Club Liso Liso Branco Branco Parcial Branco Um Pendente Marrom Numeroso Prados
Venenoso Convexo Escamoso Branco Machucado Pungente Livre Fechado Estreito Marrom Alargado Igual Liso Liso Branco Branco Parcial Branco Um Pendente Preto Espalhado Urbano
Comestível Convexo Liso Verde Sem machucados Nenhum Livre Aglomerado Largo Preto Afunilado Igual Liso Liso Branco Branco Parcial Branco Um Evanescente Marrom Abundante Gramíneas
Comestível Convexo Escamoso Amarelo Machucado Amêndoa Livre Fechado Largo Marrom Alargado Club Liso Liso Branco Branco Parcial Branco Um Pendente Preto Numeroso Gramíneas

Logo de cara, você percebe que todos os dados são textuais. Será necessário converter esses dados para poder usá-los em um gráfico. Na verdade, a maior parte dos dados está representada como um objeto:

names(mushrooms)

A saída é:

[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"            

Pegue esses dados e converta a coluna 'class' para uma categoria:

library(dplyr)
grouped=mushrooms %>%
  group_by(class) %>%
  summarise(count=n())

Agora, se você imprimir os dados dos cogumelos, verá que eles foram agrupados em categorias de acordo com a classe venenoso/comestível:

View(grouped)
classe contagem
Comestível 4208
Venenoso 3916

Se você seguir a ordem apresentada nesta tabela para criar os rótulos da categoria 'class', poderá construir um gráfico de pizza.

Pizza!

pie(grouped$count,grouped$class, main="Edible?")

Voilá, um gráfico de pizza mostrando as proporções desses dados de acordo com essas duas classes de cogumelos. É muito importante obter a ordem correta dos rótulos, especialmente aqui, então certifique-se de verificar a ordem com a qual o array de rótulos foi construído!

gráfico de pizza

Roscas!

Um gráfico de pizza um pouco mais visualmente interessante é o gráfico de rosca, que é um gráfico de pizza com um buraco no meio. Vamos observar nossos dados usando este método.

Veja os diversos habitats onde os cogumelos crescem:

library(dplyr)
habitat=mushrooms %>%
  group_by(habitat) %>%
  summarise(count=n())
View(habitat)

A saída é:

habitat contagem
Gramíneas 2148
Folhas 832
Prados 292
Trilhas 1144
Urbano 368
Resíduos 192
Madeira 3148

Aqui, você está agrupando seus dados por habitat. Existem 7 listados, então use-os como rótulos para seu gráfico de rosca:

library(ggplot2)
library(webr)
PieDonut(habitat, aes(habitat, count=count))

gráfico de rosca

Este código usa duas bibliotecas - ggplot2 e webr. Usando a função PieDonut da biblioteca webr, podemos criar um gráfico de rosca facilmente!

Gráficos de rosca no R também podem ser feitos usando apenas a biblioteca ggplot2. Você pode aprender mais sobre isso aqui e experimentar por conta própria.

Agora que você sabe como agrupar seus dados e exibi-los como pizza ou rosca, pode explorar outros tipos de gráficos. Experimente um gráfico de waffle, que é apenas uma maneira diferente de explorar quantidades.

Waffles!

Um gráfico do tipo 'waffle' é uma maneira diferente de visualizar quantidades como uma matriz 2D de quadrados. Experimente visualizar as diferentes quantidades de cores de chapéus de cogumelos neste conjunto de dados. Para isso, você precisa instalar uma biblioteca auxiliar chamada waffle e usá-la para gerar sua visualização:

install.packages("waffle", repos = "https://cinc.rud.is")

Selecione um segmento de seus dados para agrupar:

library(dplyr)
cap_color=mushrooms %>%
  group_by(cap.color) %>%
  summarise(count=n())
View(cap_color)

Crie um gráfico de waffle criando rótulos e agrupando seus 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, você pode ver claramente as proporções das cores dos chapéus neste conjunto de dados de cogumelos. Curiosamente, há muitos cogumelos com chapéus verdes!

gráfico de waffle

Nesta lição, você aprendeu três maneiras de visualizar proporções. Primeiro, você precisa agrupar seus dados em categorias e, em seguida, decidir qual é a melhor maneira de exibir os dados - pizza, rosca ou waffle. Todas são deliciosas e proporcionam ao usuário uma visão instantânea de um conjunto de dados.

🚀 Desafio

Tente recriar esses gráficos saborosos no Charticulator.

Quiz pós-aula

Revisão e Autoestudo

Às vezes, não é óbvio quando usar um gráfico de pizza, rosca ou waffle. Aqui estão alguns artigos para ler sobre este tópico:

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

https://medium.datadriveninvestor.com/data-visualization-done-the-right-way-with-tableau-waffle-chart-fdf2a19be402

Pesquise mais informações sobre essa decisão difícil.

Tarefa

Tente no Excel


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 em seu idioma nativo deve ser considerado a fonte oficial. Para informações críticas, recomenda-se a tradução profissional feita por humanos. Não nos responsabilizamos por quaisquer mal-entendidos ou interpretações equivocadas decorrentes do uso desta tradução.