我想在堆积条形图上放置百分比标签。但是,我只想标记每个条形中最大的 3 个百分比。我浏览了很多关于 SO 的有用帖子(例如:1, 2, 3),这是我迄今为止所完成的工作:
library(ggplot2)
groups<-factor(rep(c("1","2","3","4","5","6","Missing"),4))
site<-c(rep("Site1",7),rep("Site2",7),rep("Site3",7),rep("Site4",7))
counts<-c(7554,6982, 6296,16152,6416,2301,0,
20704,10385,22041,27596,4648, 1325,0,
17200, 11950,11836,12303, 2817,911,1,
2580,2620,2828,2839,507,152,2)
tapply(counts,site,sum)
tot<-c(rep(45701,7),rep(86699,7), rep(57018,7), rep(11528,7))
prop<-sprintf("%.1f%%", counts/tot*100)
data<-data.frame(groups,site,counts,prop)
ggplot(data, aes(x=site, y=counts,fill=groups)) + geom_bar()+
stat_bin(geom = "text",aes(y=counts,label = prop),vjust = 1) +
scale_y_continuous(labels = percent)
我想在这里插入我的输出图像,但似乎没有足够的声誉......但是上面的代码应该能够生成绘图。
那么我怎样才能只标记每个条形上最大的 3 个百分比呢?另外,对于图例,我是否可以更改类别的顺序?例如,将“失踪”放在第一位。这在这里不是一个大问题,但对于我的真实数据集,图例中类别的顺序确实让我困扰。
我是这个网站的新手,所以如果我的问题有任何不清楚的地方,请告诉我,我会解决它。我很感激任何答案/评论!谢谢你!