library(tidyverse)
## -- Attaching packages ------------------------------------------------------------------------------ tidyverse 1.2.1 --
## v ggplot2 3.1.0 v purrr 0.2.5
## v tibble 1.4.2 v dplyr 0.7.7
## v tidyr 0.8.2 v stringr 1.3.1
## v readr 1.1.1 v forcats 0.3.0
## -- Conflicts --------------------------------------------------------------------------------- tidyverse_conflicts() --
## x dplyr::filter() masks stats::filter()
## x dplyr::lag() masks stats::lag()
set.seed(20181108)
mean_sdl_squish <- function(...) {
dplyr::mutate(
ggplot2::mean_sdl(...),
ymin = scales::squish(ymin, c(0, max(ymax))))
}
d <- rpois(1000, sample(c(1, 10), size = 1000, replace = TRUE)) %>%
as_tibble()
d
## # A tibble: 1,000 x 1
## value
## <int>
## 1 0
## 2 1
## 3 2
## 4 8
## 5 4
## 6 6
## 7 0
## 8 2
## 9 1
## 10 1
## # ... with 990 more rows
ggplot(d) +
aes(y = value) +
stat_summary(aes(color = "mean_sdl", x = "a"), fun.data = mean_sdl) +
stat_summary(aes(color = "mean_sdl_squish", x = "b"), fun.data = mean_sdl_squish)
