在饼图 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 问题可以帮助您:
- ggplot, facet, piechart: placing text in the middle of piechart slices
- 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 中的数据给我一个不错的结果,但您可能需要不同的值。
我的 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 问题可以帮助您:
- ggplot, facet, piechart: placing text in the middle of piechart slices
- 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 中的数据给我一个不错的结果,但您可能需要不同的值。