Add a vertical line with different intercept for each panel in ggplot2

前端 未结 2 1862
被撕碎了的回忆
被撕碎了的回忆 2021-02-05 12:32

I\'m using ggplot2 to create panels of histograms, and I\'d like to be able to add a vertical line at the mean of each group. But geom_vline() uses the same intercept for each

2条回答
  •  情歌与酒
    2021-02-05 12:51

    One way is to construct the data.frame with the mean values before hand.

    library(reshape)
    dfs <- recast(data.frame(cat1, cat2, val), cat1+cat2~variable, fun.aggregate=mean)
    qplot(val, data=df, geom="histogram", binwidth=0.2, facets=cat1~cat2) + geom_vline(data=dfs, aes(xintercept=val), colour="red") + geom_text(data=dfs, aes(x=val+1, y=1, label=round(val,1)), size=4, colour="red")
    

提交回复
热议问题