Como centralizar os meus rótulos no gráfico de Pizza

Bom dia pessoal,

Primeiramente, peço desculpas por não usar o reprex, tive algumas dificuldades em entendimento.

Estou com um problema em um gráfico de pizza, e gostaria que pudessem me auxiliar ao melhor modo de rotular

Estou fazendo o gráfico dentro do Rmarkdown, segue o código:

Dados1.1 ← Dataset %>% select(Regime da ocupação)
#dados1.1 ← as.data.frame(dados1.1)
Dados1.1 ← table(Dados1.1)
Dados1.1 ← as.data.frame(Dados1.1)
Dados1.1 ← Dados1.1 %>% mutate(“Percentual” = scales::number(100*Freq/sum(Freq), accuracy = 0.01, big.mark = “.”, decimal.mark = “,”)) %>% arrange(desc((Freq)))

Dados1.1 ← Dados1.1%>%mutate(Id = paste(“ID”,row_number()))
colnames(Dados1.1) ← c(“Regime da Ocupação”, “Frequência”, “Percentual”)

ggplot(Dados1.1, aes(x=“”, y=Frequência, fill=Regime da Ocupação)) + geom_bar(width = 1, stat = “identity”) +
coord_polar(“y”, start=0) +theme_void() +
geom_text(aes(label=paste(Percentual,“%”)), position = position_jitterdodge(jitter.height = 1,dodge.width = 1),
color = “white”) +
labs(title = “Regime da Ocupação”) + scale_fill_manual(“Regime da Ocupação”, values = c(“Não Realizado” = “#e9501b”, “Ocupacao” = “#11a4df”, “Posse” = “#ddd424”, “Próprio” = “#252859”))

Agradecido por qualquer orientação

1 curtida

Parece que ta quase certo, o problema deve estar no position_jitterdodge() que deve estar bagunçando os rótulos. Acho que vale tentar o position_stack() nesse caso.

Ah, e também existe o geom_text_repel() do pacote ggrepel que evita sobreposicao dos rotulos automaticamente…

library(janitor)
library(ggplot2)
library(scales)

diamonds %>%
    tabyl(cut) %>%
    ggplot(aes(x = 1, y = percent, fill = cut)) +
    geom_bar(width = 1, stat = "identity") +
    coord_polar("y", start = 0) +
    geom_text(
        aes(x = 1.3, label = percent(percent)), 
        size = 4, 
        color = "white", 
        position = position_stack(vjust = 0.5)
    ) +
    theme_void() +
    labs(title = "Regime da Ocupação") + 
    scale_fill_manual(
        "Regime da Ocupação", 
        values = c("Fair" = "#e9501b", 
                          "Good" = "#11a4df", 
                          "Very Good" = "#ddd424", 
                          "Premium" = "#252859", 
                          "Ideal" = "#3455aa"))

Created on 2023-03-04 with reprex v2.0.2

2 curtidas