ggplot2:如何将百分比标签添加到圆环图

Gio*_*jet 7 r percentage ggplot2 donut-chart

我对R来说很新...所以请原谅我.我正在尝试使用ggplot2制作甜甜圈图.我修改了后期ggplot甜甜圈图表的代码, 但现在我无法在图表上添加百分比.这是我的尝试:

library(ggplot2)

blank_theme <- theme_minimal()+
  theme(
    axis.title.x = element_blank(),
    axis.title.y = element_blank(),
    panel.border = element_blank(),
    panel.grid=element_blank(),
    axis.ticks = element_blank(),
    plot.title=element_text(size=14, face="bold")
  )



dat = data.frame(count=c(319, 442, 239), category=c("University", "High Scool", "Lower"))


dat$fraction = dat$count / sum(dat$count)

dat$ymax = cumsum(dat$fraction)
dat$ymin = c(0, head(dat$ymax, n=-1))

dat$category <- factor(dat$category, levels = c("University", "High Scool", "Lower"))


p1 = ggplot(dat, aes(fill=category, ymax=ymax, ymin=ymin, xmax=4, xmin=3)) +
  geom_rect(color='blue') +
  coord_polar(theta="y") +
  xlim(c(1, 4)) 



edu<-p1 + scale_fill_brewer("Education") + blank_theme +
  theme(axis.text.x=element_blank()) + theme(legend.position=c(.5, .5)) + ggtitle("") +
  theme(panel.grid=element_blank()) +
  theme(axis.text=element_blank()) +
  theme(axis.ticks=element_blank()) +
  theme(legend.title = element_text(size=16, face="bold")) +
  theme(legend.text = element_text(size = 14, face = "bold")) 

edu
Run Code Online (Sandbox Code Playgroud)

我尝试过很多geom_text和scale_y_continuous代码但是......没有.愿有人帮帮我吗?谢谢

sco*_*coa 10

你可以使用geom_label:

edu +  geom_label(aes(label=paste(fraction*100,"%"),x=3.5,y=(ymin+ymax)/2),inherit.aes = TRUE, show.legend = FALSE)
Run Code Online (Sandbox Code Playgroud)

在此输入图像描述