我想在堆积条形图上添加百分比标签。然而,我只想为每个条形图标记最大的三个百分比。我查看了许多有用的帖子(例如: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个百分比?另外,对于图例,我是否可以更改类别的顺序?例如将“Missing”放在第一位。这在这里不是一个大问题,但对于我的真实数据集来说,图例中类别的顺序确实让我困扰。
我是这个网站上的新手,如果我的问题有什么不清楚的地方,请告诉我,我会进行更正。非常感谢任何回答/意见!谢谢!
percentages
之前加上scales::
,并在summarize
之前加上plyr::
。 - peer