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.
Data-Science-For-Beginners/translations/pt/3-Data-Visualization/R/09-visualization-quantities
leestott cfd74ebbf1
🌐 Update translations via Co-op Translator
4 weeks ago
..
README.md 🌐 Update translations via Co-op Translator 4 weeks ago
assignment.md 🌐 Update translations via Co-op Translator 4 weeks ago

README.md

Visualizar Quantidades

 Sketchnote por (@sketchthedocs)
Visualizar Quantidades - Sketchnote por @nitya

Nesta lição, vais explorar como utilizar algumas das muitas bibliotecas de pacotes disponíveis no R para aprender a criar visualizações interessantes em torno do conceito de quantidade. Usando um conjunto de dados limpo sobre os pássaros do Minnesota, podes aprender muitos factos interessantes sobre a vida selvagem local.

Questionário pré-aula

Observar a envergadura com ggplot2

Uma biblioteca excelente para criar gráficos e diagramas simples e sofisticados de vários tipos é ggplot2. Em termos gerais, o processo de criação de gráficos usando estas bibliotecas inclui identificar as partes do teu dataframe que queres analisar, realizar as transformações necessárias nos dados, atribuir os valores dos eixos x e y, decidir o tipo de gráfico a mostrar e, finalmente, exibir o gráfico.

ggplot2 é um sistema para criar gráficos de forma declarativa, baseado na Gramática dos Gráficos. A Gramática dos Gráficos é um esquema geral para visualização de dados que divide os gráficos em componentes semânticos, como escalas e camadas. Em outras palavras, a facilidade de criar gráficos para dados univariados ou multivariados com pouco código torna o ggplot2 o pacote mais popular usado para visualizações em R. O utilizador informa ao ggplot2 como mapear as variáveis para os elementos visuais, os primitivos gráficos a usar, e o ggplot2 cuida do resto.

Gráfico = Dados + Estética + Geometria

  • Dados referem-se ao conjunto de dados
  • Estética indica as variáveis a serem estudadas (variáveis x e y)
  • Geometria refere-se ao tipo de gráfico (gráfico de linhas, barras, etc.)

Escolhe a melhor geometria (tipo de gráfico) de acordo com os teus dados e a história que queres contar através do gráfico.

  • Para analisar tendências: linha, coluna
  • Para comparar valores: barra, coluna, circular, dispersão
  • Para mostrar como as partes se relacionam com o todo: circular
  • Para mostrar a distribuição dos dados: dispersão, barra
  • Para mostrar relações entre valores: linha, dispersão, bolha

Também podes consultar este cheatsheet descritivo para ggplot2.

Criar um gráfico de linhas sobre os valores de envergadura das aves

Abre o console do R e importa o conjunto de dados.

Nota: O conjunto de dados está armazenado na raiz deste repositório na pasta /data.

Vamos importar o conjunto de dados e observar as primeiras linhas (topo 5) dos dados.

birds <- read.csv("../../data/birds.csv",fileEncoding="UTF-8-BOM")
head(birds)

O início dos dados tem uma mistura de texto e números:

Nome NomeCientífico Categoria Ordem Família Género EstadoConservação MinComprimento MaxComprimento MinMassaCorporal MaxMassaCorporal MinEnvergadura MaxEnvergadura
0 Pato-silvo-de-barriga-preta Dendrocygna autumnalis Patos/Gansos/AvesAquáticas Anseriformes Anatidae Dendrocygna LC 47 56 652 1020 76 94
1 Pato-silvo-fulvo Dendrocygna bicolor Patos/Gansos/AvesAquáticas Anseriformes Anatidae Dendrocygna LC 45 53 712 1050 85 93
2 Ganso-da-neve Anser caerulescens Patos/Gansos/AvesAquáticas Anseriformes Anatidae Anser LC 64 79 2050 4050 135 165
3 Ganso-de-Ross Anser rossii Patos/Gansos/AvesAquáticas Anseriformes Anatidae Anser LC 57.3 64 1066 1567 113 116
4 Ganso-de-testa-branca-maior Anser albifrons Patos/Gansos/AvesAquáticas Anseriformes Anatidae Anser LC 64 81 1930 3310 130 165

Vamos começar por representar graficamente alguns dos dados numéricos usando um gráfico de linhas básico. Suponhamos que queres visualizar a envergadura máxima destas aves interessantes.

install.packages("ggplot2")
library("ggplot2")
ggplot(data=birds, aes(x=Name, y=MaxWingspan,group=1)) +
  geom_line() 

Aqui, instalas o pacote ggplot2 e depois importas para o ambiente de trabalho usando o comando library("ggplot2"). Para criar qualquer gráfico no ggplot, usa-se a função ggplot() e especifica-se o conjunto de dados, as variáveis x e y como atributos. Neste caso, usamos a função geom_line() porque queremos criar um gráfico de linhas.

MaxWingspan-lineplot

O que notas imediatamente? Parece haver pelo menos um valor atípico - que envergadura impressionante! Uma envergadura de mais de 2000 centímetros equivale a mais de 20 metros - será que há Pterodáctilos a voar em Minnesota? Vamos investigar.

Embora pudesses fazer uma ordenação rápida no Excel para encontrar esses valores atípicos, que provavelmente são erros de digitação, continua o processo de visualização trabalhando diretamente no gráfico.

Adiciona rótulos ao eixo x para mostrar que tipo de aves estão em questão:

ggplot(data=birds, aes(x=Name, y=MaxWingspan,group=1)) +
  geom_line() +
  theme(axis.text.x = element_text(angle = 45, hjust=1))+
  xlab("Birds") +
  ylab("Wingspan (CM)") +
  ggtitle("Max Wingspan in Centimeters")

Especificamos o ângulo no theme e definimos os rótulos dos eixos x e y em xlab() e ylab() respetivamente. O ggtitle() dá um nome ao gráfico.

MaxWingspan-lineplot-improved

Mesmo com a rotação dos rótulos definida para 45 graus, há demasiados para ler. Vamos tentar uma estratégia diferente: rotular apenas os valores atípicos e definir os rótulos dentro do gráfico. Podes usar um gráfico de dispersão para criar mais espaço para os rótulos:

ggplot(data=birds, aes(x=Name, y=MaxWingspan,group=1)) +
  geom_point() +
  geom_text(aes(label=ifelse(MaxWingspan>500,as.character(Name),'')),hjust=0,vjust=0) + 
  theme(axis.title.x=element_blank(), axis.text.x=element_blank(), axis.ticks.x=element_blank())
  ylab("Wingspan (CM)") +
  ggtitle("Max Wingspan in Centimeters") + 

O que está a acontecer aqui? Usaste a função geom_point() para criar pontos de dispersão. Com isso, adicionaste rótulos para aves cuja MaxWingspan > 500 e também ocultaste os rótulos no eixo x para desobstruir o gráfico.

O que descobres?

MaxWingspan-scatterplot

Filtrar os teus dados

Tanto a Águia-careca como o Falcão-das-pradarias, embora provavelmente sejam aves muito grandes, parecem estar mal rotulados, com um zero extra adicionado à sua envergadura máxima. É improvável que encontres uma Águia-careca com uma envergadura de 25 metros, mas, se isso acontecer, avisa-nos! Vamos criar um novo dataframe sem esses dois valores atípicos:

birds_filtered <- subset(birds, MaxWingspan < 500)

ggplot(data=birds_filtered, aes(x=Name, y=MaxWingspan,group=1)) +
  geom_point() +
  ylab("Wingspan (CM)") +
  xlab("Birds") +
  ggtitle("Max Wingspan in Centimeters") + 
  geom_text(aes(label=ifelse(MaxWingspan>500,as.character(Name),'')),hjust=0,vjust=0) +
  theme(axis.text.x=element_blank(), axis.ticks.x=element_blank())

Criámos um novo dataframe birds_filtered e depois representámos um gráfico de dispersão. Ao filtrar os valores atípicos, os teus dados tornam-se mais coesos e compreensíveis.

MaxWingspan-scatterplot-improved

Agora que temos um conjunto de dados mais limpo, pelo menos em termos de envergadura, vamos descobrir mais sobre estas aves.

Embora gráficos de linhas e dispersão possam exibir informações sobre valores de dados e suas distribuições, queremos pensar nos valores inerentes a este conjunto de dados. Podes criar visualizações para responder às seguintes perguntas sobre quantidade:

Quantas categorias de aves existem e quais são os seus números?
Quantas aves estão extintas, em perigo, raras ou comuns?
Quantas existem dos vários géneros e ordens na terminologia de Linnaeus?

Explorar gráficos de barras

Os gráficos de barras são práticos quando precisas de mostrar agrupamentos de dados. Vamos explorar as categorias de aves que existem neste conjunto de dados para ver qual é a mais comum em número.
Vamos criar um gráfico de barras com os dados filtrados.

install.packages("dplyr")
install.packages("tidyverse")

library(lubridate)
library(scales)
library(dplyr)
library(ggplot2)
library(tidyverse)

birds_filtered %>% group_by(Category) %>%
  summarise(n=n(),
  MinLength = mean(MinLength),
  MaxLength = mean(MaxLength),
  MinBodyMass = mean(MinBodyMass),
  MaxBodyMass = mean(MaxBodyMass),
  MinWingspan=mean(MinWingspan),
  MaxWingspan=mean(MaxWingspan)) %>% 
  gather("key", "value", - c(Category, n)) %>%
  ggplot(aes(x = Category, y = value, group = key, fill = key)) +
  geom_bar(stat = "identity") +
  scale_fill_manual(values = c("#D62728", "#FF7F0E", "#8C564B","#2CA02C", "#1F77B4", "#9467BD")) +                   
  xlab("Category")+ggtitle("Birds of Minnesota")

No seguinte trecho, instalamos os pacotes dplyr e lubridate para ajudar a manipular e agrupar dados para criar um gráfico de barras empilhado. Primeiro, agrupas os dados pela Categoria das aves e depois resumes as colunas MinLength, MaxLength, MinBodyMass, MaxBodyMass, MinWingspan, MaxWingspan. Em seguida, crias o gráfico de barras usando o pacote ggplot2 e especificas as cores para as diferentes categorias e os rótulos.

Stacked bar chart

Este gráfico de barras, no entanto, é ilegível porque há demasiados dados não agrupados. Precisamos de selecionar apenas os dados que queremos representar, então vamos observar o comprimento das aves com base na sua categoria.

Filtra os teus dados para incluir apenas a categoria das aves.

Como há muitas categorias, podes exibir este gráfico verticalmente e ajustar a sua altura para acomodar todos os dados:

birds_count<-dplyr::count(birds_filtered, Category, sort = TRUE)
birds_count$Category <- factor(birds_count$Category, levels = birds_count$Category)
ggplot(birds_count,aes(Category,n))+geom_bar(stat="identity")+coord_flip()

Primeiro, contas os valores únicos na coluna Categoria e depois ordenas num novo dataframe birds_count. Estes dados ordenados são então considerados no mesmo nível para que sejam representados de forma ordenada. Usando o ggplot2, crias o gráfico de barras. O coord_flip() cria barras horizontais.

category-length

Este gráfico de barras mostra uma boa visão do número de aves em cada categoria. Num piscar de olhos, vês que o maior número de aves nesta região pertence à categoria de Patos/Gansos/AvesAquáticas. Minnesota é a 'terra dos 10.000 lagos', então isto não é surpreendente!

Experimenta algumas outras contagens neste conjunto de dados. Algo te surpreende?

Comparar dados

Podes tentar diferentes comparações de dados agrupados criando novos eixos. Experimenta uma comparação do MaxLength de uma ave, com base na sua categoria:

birds_grouped <- birds_filtered %>%
  group_by(Category) %>%
  summarise(
  MaxLength = max(MaxLength, na.rm = T),
  MinLength = max(MinLength, na.rm = T)
           ) %>%
  arrange(Category)
  
ggplot(birds_grouped,aes(Category,MaxLength))+geom_bar(stat="identity")+coord_flip()

Agrupamos os dados birds_filtered pela Categoria e depois criamos um gráfico de barras.

comparing data

Nada é surpreendente aqui: os beija-flores têm o menor MaxLength em comparação com os Pelicanos ou Gansos. É bom quando os dados fazem sentido lógico!

Podes criar visualizações mais interessantes de gráficos de barras sobrepondo dados. Vamos sobrepor o Comprimento Mínimo e Máximo numa determinada categoria de aves:

ggplot(data=birds_grouped, aes(x=Category)) +
  geom_bar(aes(y=MaxLength), stat="identity", position ="identity",  fill='blue') +
  geom_bar(aes(y=MinLength), stat="identity", position="identity", fill='orange')+
  coord_flip()

super-imposed values

🚀 Desafio

Este conjunto de dados sobre aves oferece uma riqueza de informações sobre diferentes tipos de aves dentro de um ecossistema particular. Procura na internet e vê se consegues encontrar outros conjuntos de dados relacionados com aves. Pratica a criação de gráficos e diagramas sobre estas aves para descobrir factos que não conhecias.

Questionário pós-aula

Revisão & Autoestudo

Esta primeira lição deu-te algumas informações sobre como usar o ggplot2 para visualizar quantidades. Faz alguma pesquisa sobre outras formas de trabalhar com conjuntos de dados para visualização. Pesquisa e procura conjuntos de dados que possas visualizar usando outros pacotes como Lattice e Plotly.

Tarefa

Linhas, Dispersões e Barras

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 autoritária. 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.