So, as stated in the subject - when I use scales = 'free_x' in facet_grid(), geom_signif fails
Reprex
Data prep
library(tidyverse)
library(ggsignif)
# Prepare representative data
edited_mpg <- mpg %>%
filter(cyl %in% c(4, 6)) %>%
mutate( year = case_when(
cyl == 4 ~ year + 2,
TRUE ~ as.numeric(year)
))
This works
# Plot with fixed scales in facet_grid() works fine
edited_mpg %>%
ggplot(aes(x = as.factor(year),
y = hwy)) +
geom_point() +
geom_signif(comparison = list(c(1, 3),
c(2, 4)),
test = 't.test') +
facet_grid(cols = vars(cyl)) +
coord_cartesian(ylim = c(15, 50))
This doesn't work
# Same as above but 'free_x' scales in facet_grid() does not work
edited_mpg %>%
ggplot(aes(x = as.factor(year),
y = hwy)) +
geom_point() +
geom_signif(comparison = list(c(1, 3),
c(2, 4)),
test = 't.test') +
coord_cartesian(ylim = c(15, 50)) +
facet_grid(cols = vars(cyl),
scales = 'free_x')
#> Warning: Computation failed in `stat_signif()`:
#> not enough 'y' observations
#> Computation failed in `stat_signif()`:
#> not enough 'y' observations
So, as stated in the subject - when I use
scales = 'free_x'
infacet_grid()
, geom_signif failsReprex
Data prep
This works
This doesn't work
Created on 2022-07-25 by the reprex package (v2.0.1)