在饼图 ggplot2 上贴上标签

Put labels on pie ggplot2

我的 df 看起来像:

1   with score
125 without score

我想在 ggplot 中制作饼图:

ggplot(data = df_pp, aes(x = "", y = Number/sum(Number),fill =     PolyPhen_score)) + geom_bar(stat="identity") + coord_polar(theta='y')  +
ggtitle("Variants with PolyPhen score and without PolyPhen score") + 
scale_y_continuous(labels  = percent) + labs(x = "", y = "") +
theme(panel.background = element_rect(fill = 'white')) + 
geom_text(aes(label = paste(round(Number/sum(Number)*100),"%")),vjust = 5)

但是我的标签 1% 和 99% 在饼图上重叠了。

如果我添加这段代码,它没有帮助:

geom_text(aes(y=Number/2 + c(0,cumsum(Number)[-length(Number)]), label = percent(Number/100)), size=5)

也许这些其他 Whosebug 问题可以帮助您:

  1. ggplot, facet, piechart: placing text in the middle of piechart slices
  2. R + ggplot2 => add labels on facet pie chart

我用一些随机数据在我的机器上做了一些测试,我试过这个:

geom_text(aes(x = 1.7, y=cumsum(Number/sum(Number)) - Number/sum(Number)/2, label = paste(round(Number/sum(Number)*100),"%")), size = 6)

X 是标签到饼图中心的距离。 x = 1.7 使用 RStudio 中的数据给我一个不错的结果,但您可能需要不同的值。