Displaying separate means within fill groups in ggplot boxplot

后端 未结 1 1036
南笙
南笙 2021-02-09 05:06

I have a grouped boxplot using data with 3 categories. One category is set as the x-axis of the boxplots, the other is set as the fill, and the last one, as a faceting category.

相关标签:
1条回答
  • 2021-02-09 05:43

    Ggplot needs to have explicit information on grouping here. You can do that either by using a aes(group=....) in the desired layer, or moving the fill=... to the main call to ggplot. Without explicit grouping for a layer, ggplot will group by the factor on the x-axis. Here's some sample code with fake data:

    library(ggplot2)
    set.seed(123)
    
    nobs <- 1000
    dat <- data.frame(var1=sample(LETTERS[1:3],nobs, T),
                      var2=sample(LETTERS[1:2],nobs,T),
                      var3=sample(LETTERS[1:3],nobs,T),
                      y=rnorm(nobs))
    
    p1 <- ggplot(dat, aes(x=var1, y=y)) +
      geom_boxplot(aes(fill=var2), position=position_dodge(.9)) +
      facet_wrap(~var3) +
      stat_summary(fun.y=mean, geom="point", aes(group=var2), position=position_dodge(.9), 
                   color="black", size=4)
    

    0 讨论(0)
提交回复
热议问题