如何将ggplot2饼图的百分比标签移至图表外部?
解决ggplot2饼图百分比标签移至外部的问题
你添加的theme(plot.margin)只是调整图表整体的外边距,无法控制标签的位置。要把百分比标签移到饼图外部,需要调整geom_text的位置参数,并为标签预留显示空间,具体修改如下:
修改要点:
- 将ggplot映射中的
x = ""改为x = 1,便于后续扩展x轴范围给标签腾空间 - 把
geom_text的position_stack(vjust = 0.5)调整为position_stack(vjust = 1.05)(vjust大于1会将标签推至饼块外部) - 添加
xlim(0.5, 1.5)扩展x轴范围,避免外部标签被截断 - 可以把标签颜色改为黑色,更适合在外部显示
修改后的完整代码:
data <- read.csv("/home/miguel/Documentos/CSV_oficiales/docs_cnh.csv") freq <- count(data, Documento.Vigente) # Calcular los porcentajes freq <- freq %>% mutate(Percentage = n / sum(n) * 100) # Crear el gráfico de pastel utilizando ggplot2 ggplot(freq, aes(x = 1, y = n, fill = Documento.Vigente)) + geom_bar(width = 1, stat = "identity") + coord_polar(theta = "y") + labs(fill = "Referencia") + scale_fill_brewer(palette = "Blues") + ggtitle("Documentos vigentes ante la CNH") + theme_void() + xlim(0.5, 1.5) + # 扩展x轴范围,给外部标签留空间 geom_text(aes(label = paste0(round(Percentage, 1), "%")), position = position_stack(vjust = 1.05), color = "black", size = 4)
如果标签仍然有截断的情况,可以适当调整xlim的上限(比如改成1.6)或者vjust的数值,直到标签显示正常。
内容的提问来源于stack exchange,提问作者Miguel JV
相关产品推荐
相关产品推荐

