ggplot2 - Boxplot Whiskers at Min/Max

前端 未结 1 1679
不知归路
不知归路 2021-01-20 18:35

In ggplot2, I would like to have the whiskers extend to the min and max values for a data set and not show the outliers. I\'ve found the method to hide the outliers but I ha

相关标签:
1条回答
  • 2021-01-20 19:27

    Following LJW's comment I think this is what you want:

    a <- data.frame(group = "a", value = rnorm(10))
    b <- data.frame(group = "b", value = rnorm(100))
    c <- data.frame(group = "c", value = rnorm(1000))
    
    data <- rbind(a, b, c)
    
    o <- function(x) {
      subset(x, x == max(x) | x == min(x))
    }
    
    f <- function(x) {
      r <- quantile(x, probs = c(0.00, 0.25, 0.5, 0.75, 1))
      names(r) <- c("ymin", "lower", "middle", "upper", "ymax")
      r
    }
    
    ggplot(data, aes(x=group, y=value)) + 
      stat_summary(fun.data=f, geom="boxplot") + 
      stat_summary(fun.y = o, geom="point") +
      stat_boxplot(geom='errorbar',coef=10) #just give an arbitrarily big number here
    

    UPDATE You can add the whiskers with the coef argument in the stat_boxplot function:

    enter image description here

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