const-ae/ggsignif

geom_signif does not plot comparison on the facetted plot with free x scale

Dobrokhotov1989 opened this issue · 2 comments

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

Created on 2022-07-25 by the reprex package (v2.0.1)

@Dobrokhotov1989 Could you solve or work-around this issue?

Hi @drfalco,
Sorry I don't remember what I'm end up with. Most likely I did it in some manual way, but I'm not sure