如何解决如何将百分比标签移到ggplot2的饼图中?
因此,我有许多hpv子类型的饼图,这是有问题的,因为有些像1%,并且百分比标签不合适。因此,我想知道如何将%标签移到饼图之外,以便于阅读?
我的代码是这样的:
#Creating my data frame
HPV <- c("HPV16","HPV18","HPV45","HPV58","HPV68","HPV52","HPV31","HPV39","HPV30","HPV33","HPV56","HPV59","HPV73","HPV35","HPV70","HPV69")
proportion <- c(0.609467456,0.159763314,0.059171598,0.029585799,0.00591716,0.017751479,0.00591716)
df<-data.frame(HPV,proportion)
library(ggplot2)
#Creating the pie chart
pie <- ggplot(data = df,aes(x="",y=proportion,fill=HPV)) +
geom_col(color = "black") +
coord_polar("y",start=0) +
geom_text(aes(label=paste0(round(proporción*100),"%")),position = position_stack(vjust=0.5)) +
theme(panel.background = element_blank(),axis.line = element_blank(),axis.text = element_blank(),axis.ticks = element_blank(),axis.title = element_blank(),plot.title = element_text(hjust = 0.5,size = 18)) +
ggtitle("Subtypes of HPV in GDC TCGA cervical cancer (CESC)") +
scale_fill_manual(values = c("#F46698","#F36DDB","#DD6DF3","#AC6DF3","#7355FC","#5562FC","#55B5FC","#55C7FC","#55E8FC","#56EDEB","#93F9EF","#61F9BF","#5BEC75","#58D64B","#91D64B","#B4D64B","#D6D64B","#FFDB57"))
print(pie)
解决方法
有点麻烦,但是您可以将x坐标指定为略微位于普通条形图的右侧,然后,在将条形图包装为饼形图时,coord_polar会将其稍稍放在外面。默认的x坐标为1,因此使用1.5可以将它们放在图表的边缘,而将1.6放置在图表的外面。所有代码基本上都是相同的,但是请注意x=1.6
的{{1}}调用中新增了aes()
。
geom_text()
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。