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

R语言绘制饼图时如何将分组名称标注在扇形内部以省略图例

解决方法

你可以通过调整标签生成逻辑、关闭图例映射两步实现需求,修改后的可运行代码如下:

library(tidyverse)
library(ggrepel)

dummy <- data.frame(
  Var1 = c("A", "B", "C", "D", "E"),
  Freq = c(548, 326, 292, 199, 138)
)

dummy %>%
  mutate(perc = scales::percent(Freq/sum(Freq))) %>%
  # 拼接分组名和占比作为标注内容,换行显示更清晰
  mutate(label_text = paste0(Var1, "\n", perc)) %>%
  arrange(desc(Var1)) %>%
  mutate(pos = cumsum(Freq) - Freq/2) %>%
  ggplot(aes(x = "", y = Freq, fill = factor(Var1))) +
  geom_bar(width = 1, stat = "identity", show.legend = FALSE) +
  coord_polar("y", start = 0) +
  # 直接将标注放在扇形中心,不需要额外偏移
  geom_label(aes(x = 1, y = pos, label = label_text), 
             size = 4, show.legend = FALSE) +
  # 全局关闭fill相关图例
  guides(fill = "none") +
  # 可选:清空无关的坐标轴元素让图表更整洁
  theme_void()

可选调整项

  • 如果不需要标签的白色背景框,可以把geom_label替换为geom_text,同时可添加color = "white"参数让文字和深色扇形的区分度更高
  • 可以调整size参数适配你的输出尺寸要求

内容的提问来源于stack exchange,提问作者Macromind101

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.04 14:57:01