我正在使用ggplot绘制数据图。我想在每个条形图中添加标签,这些标签总共包含一些尺寸类别,然后将其除以该条形的总值,以显示它们所占的百分比。
我目前正在对ggplot进行分面,以便有两行,每行3个图。我已经成功地制作了我想要的标签,但是它仅对底部3个图的条形图执行此操作。实际上,它将从底部3个图上制作的标签应用于顶部和底部图。
这是我的数据的开头:
head(Russets)
Variety Rate Hollow Double Knob AllCWT.AC ValueCWT.AC TuberSize
1 Burbank 2019 1 67 42 351 AVGCWT.AC.0.4 224.9234 0-4 oz
2 Burbank 2019 2 65 43 391 AVGCWT.AC.0.4 226.9199 0-4 oz
3 Burbank 2019 3 64 42 362 AVGCWT.AC.0.4 226.9676 0-4 oz
4 Burbank 2019 4 63 43 348 AVGCWT.AC.0.4 237.4483 0-4 oz
5 Burbank 2019 5 67 48 357 AVGCWT.AC.0.4 227.8079 0-4 oz
6 Norkotah 2019 1 73 56 371 AVGCWT.AC.0.4 168.3245 0-4 oz
这是我用来计算百分比的代码:
everythingRus = Russets %>%
filter(!(TuberSize == "Culls")) %>%
group_by(Variety,Rate) %>%
summarize(total = sum(ValueCWT.AC))
mrkRus = Russets %>%
filter(TuberSize == "6-10 oz" | TuberSize == "10-13 oz" |TuberSize == "13+ oz") %>%
group_by(Variety,Rate) %>%
summarize(mrktotal = sum(ValueCWT.AC))
mrk_evyRus = everythingRus %>% left_join(mrkRus) %>%
mutate(per = paste0((round(mrktotal/total,2))*100,"%"))
perMrkRus <- data.frame(percentRus = mrk_evyRus$per, y = rep(100,times = 15),
trt = rep(c(1,2,3,4, 5),times = 3))
这是基本的ggplot:
RussetPlot <-ggplot(data=Russets,aes(x=Rate,y=ValueCWT.AC,group=interaction(TuberSize,Variety),fill=(TuberSize))) +
geom_col(position = "stack",inherit.aes = TRUE) +
facet_wrap(~Variety,nrow=2) +
geom_label(data = perMrkRus, aes(x= trt,y=y,label = percentRus), inherit.aes=F)
有人知道我如何创建适用于正确条形图的新标签集吗?再次,问题是这适用于底部3个图,但不适用于顶部3个图。在此先感谢您的帮助!