Bom dia, pessoal. Tudo bem?
Estou com duas questões relativas ao código abaixo. Encontrei um tópico de dúvidas sobre este assunto, mas não consegui implementar no meu código. Por favor, vejam se conseguem me ajudar!
É um gráfico de barras empilhadas cruzando as contagens de duas variáveis. Dentro de cada barra, já está identificando as contagens por grupo.
- Preciso que ao final de cada barra, eu tenha o somatório de todas as contagens. Tentei fazer, criando dataframes auxiliares, mas fiz alguma coisa errada e a mensagem que estou recebendo é a seguinte:
Error in geom_text()
:
! Problem while computing aesthetics.
Error occurred in the 3rd layer.
Caused by error:
! object ‘contagem’ not found
Run rlang::last_trace()
to see where the error occurred.
- No box das legendas, na frente de cada categoria, aparece um ‘azinho’ dentro da cor. Gostaria de tirar esse ‘azinho’. Não inclui nada no código referente a isso, pois os comandos que tentei faziam desaparecer outros elementos da legenda.
Carregar as bibliotecas necessárias
if(!require(pacman)) install.packages(“pacman”)
library(pacman)
pacman::p_load(tidyverse, ggplot2, dplyr, scales, forcats, ggthemes)
install.packages(“cowplot”)
library(cowplot)
Definir as categorias para raça_etnia e vinculo_tipo
racas ← c(“branca”, “preta”, “indígena”, “amarela”, “parda”)
vinculos ← c(“servidor”, “clt”, “bolsista”, “aposentado”, “outro”)
Definir o tamanho da base de dados
n ← 1000
Gerar dados aleatórios para raça_etnia e vinculo_tipo
set.seed(123)
base ← tibble(
raça_etnia = sample(racas, n, replace = TRUE),
vinculo_tipo = sample(vinculos, n, replace = TRUE)
)
Calcular a contagem de cada grupo de raça_etnia e vinculo_tipo
base_count ← base %>%
group_by(raça_etnia, vinculo_tipo) %>%
summarise(contagem = n())
Calcular a soma total de cada grupo de raça_etnia
base_auxiliar ← base_count %>%
group_by(raça_etnia) %>%
summarise(total = sum(contagem))
Definir a paleta de cores
paleta ← c(“#00798c”, “#d1495b”, “#edae49”, “#66a182”, “#0099FF”, “#FFFFCC”, “#CCFFFF”, “#FF9999”, “#CC99FF”)
Criar o gráfico com as somas ao final das barras
gb_raca_vinculo ← base_count %>%
ggplot(aes(x = fct_infreq(raça_etnia),
y = contagem/sum(contagem),
fill = vinculo_tipo,
label = contagem),
show.legend = TRUE) +
geom_bar(stat = “identity”, width = 0.6)+
coord_flip() +
geom_label(position = position_stack(vjust = 0.5), size = 4)+
theme_gray() +
scale_y_continuous(expand = expansion(mult=c(0,0.05)),
labels = scales::percent_format(accuracy =0.1,
decimal.mark = “,”))+
labs(title= “GRÁFICO GERAL RAÇA x TIPO DE VÍNCULO”,
y = “PROPORÇÃO DE PESSOAS”,
x = “RAÇA”) +
theme(plot.title = element_text(hjust = 0.5, size = 20),
legend.position = c(.92, .75),
legend.justification = c(“right”, “top”),
legend.key.width = unit(1, “cm”),
legend.key.height = unit(1, “cm”),
axis.title.x = element_text(size = 15),
axis.title.y = element_text(size = 15),
plot.background = element_rect(fill = “white”),
plot.margin = margin(30, 30, 30, 30, “pt”),
legend.background = element_rect(fill = “transparent”, color = NA)
) +
geom_text(aes(label = total), data = base_auxiliar, position = position_stack(vjust = 0.5), size = 4, hjust = 0) +
scale_fill_manual(values = paleta, name = “Tipo de Vínculo”)
Exibir o gráfico
gb_raca_vinculo