Carregando pacotes e o banco de dados “pinguins”
library(tidyverse)
## ── Attaching core tidyverse packages ──────────────────────── tidyverse 2.0.0 ──
## ✔ dplyr 1.1.4 ✔ readr 2.1.5
## ✔ forcats 1.0.0 ✔ stringr 1.5.1
## ✔ ggplot2 3.5.2 ✔ tibble 3.3.0
## ✔ lubridate 1.9.4 ✔ tidyr 1.3.1
## ✔ purrr 1.0.4
## ── Conflicts ────────────────────────────────────────── tidyverse_conflicts() ──
## ✖ dplyr::filter() masks stats::filter()
## ✖ dplyr::lag() masks stats::lag()
## ℹ Use the conflicted package (<http://conflicted.r-lib.org/>) to force all conflicts to become errors
library(dados) # biblioteca com vários exemplos de BD
library(ggthemes)
library(ggplot2)
library(summarytools)
##
## Anexando pacote: 'summarytools'
##
## O seguinte objeto é mascarado por 'package:tibble':
##
## view
library(dplyr)
library(forcats)
library(scales)
##
## Anexando pacote: 'scales'
##
## O seguinte objeto é mascarado por 'package:purrr':
##
## discard
##
## O seguinte objeto é mascarado por 'package:readr':
##
## col_factor
pinguins
## # A tibble: 344 × 8
## especie ilha comprimento_bico profundidade_bico comprimento_nadadeira
## <fct> <fct> <dbl> <dbl> <int>
## 1 Pinguim-de-ad… Torg… 39.1 18.7 181
## 2 Pinguim-de-ad… Torg… 39.5 17.4 186
## 3 Pinguim-de-ad… Torg… 40.3 18 195
## 4 Pinguim-de-ad… Torg… NA NA NA
## 5 Pinguim-de-ad… Torg… 36.7 19.3 193
## 6 Pinguim-de-ad… Torg… 39.3 20.6 190
## 7 Pinguim-de-ad… Torg… 38.9 17.8 181
## 8 Pinguim-de-ad… Torg… 39.2 19.6 195
## 9 Pinguim-de-ad… Torg… 34.1 18.1 193
## 10 Pinguim-de-ad… Torg… 42 20.2 190
## # ℹ 334 more rows
## # ℹ 3 more variables: massa_corporal <int>, sexo <fct>, ano <int>
### Uma variavel categorica
## Frequencia simples -
# Grafico com percentuais vertical
pinguins %>%
group_by(especie) %>%
count() %>% ungroup() %>%
mutate(
porc = n / sum(n),
rotulo = scales::number(100 * porc, accuracy = 0.1, suffix = "%")
) %>%
ggplot(aes(x = forcats:: fct_reorder(especie, -porc), y=porc)) +
geom_bar(stat = "identity", fill="steelblue1") +
geom_text(aes(label=rotulo), size=3.2, vjust=-0.4)+
scale_y_continuous(labels = scales::percent_format(),
expand = expansion(mult = c(0, 0.05))) +
labs(y="Frequencia (%)", x = "Espécie")+
theme_classic()
# Grafico com percentuais - Horizontal
pinguins %>%
group_by(especie) %>%
count() %>% ungroup() %>%
mutate(
porc = n / sum(n),
rotulo = scales::number(100 * porc, accuracy = 0.1, suffix = "%")
) %>%
ggplot(aes(y = forcats:: fct_reorder(especie, -porc), x=porc)) +
geom_bar(stat = "identity", fill="steelblue1") +
geom_text(aes(label=rotulo), size=3.2, hjust=-0.2)+
scale_x_continuous(labels = scales::percent_format(),
expand = expansion(mult = c(0, 0.15))) +
labs(x="Frequencia (%)", y = "Espécie")+
theme_classic()
## Como apresentar dados de duas variaveis categóricas
## Frequencia com percentuais - barras empilhadas
# Calcula os percentuais de especie por ilha
perc_ilha <- pinguins %>% group_by(ilha) %>% count(especie) %>%
mutate(percent=n/sum(n) * 100)
ggplot(
perc_ilha,
aes(x = ilha, y = percent, fill = especie)) +
geom_bar(stat = "identity") +
geom_text(aes(label = sprintf("%.1f%%", percent)),
position=position_stack(vjust=0.5),
size=3.2, color="white") +
labs(x="Ilha",
y="Percentual (%)",
fill= "Especie")+
theme_classic()
## Como apresentar dados de duas variaveis categóricas
## Frequencia com percentuais - barras agrupadas
# Calcula os percentuais de especie por ilha
perc_ilha <- pinguins %>% group_by(ilha) %>% count(especie) %>%
mutate(percent=n/sum(n) * 100)
ggplot(
perc_ilha,
aes(x = ilha, y = percent, fill = especie)) +
geom_bar(stat = "identity", position = position_dodge(width = 0.9)) +
geom_text(aes(label = sprintf("%.1f%%", percent)),
position=position_dodge(width = 0.9),
size=3.2, vjust= -0.4, color="black") +
scale_y_continuous(
expand = expansion (mult=c(0, 0.05))) +
labs(x="Ilha",
y="Percentual (%)",
fill= "Especie")+
theme_classic() + theme(legend.position = "bottom")