You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何将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

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.19 15:48:18