ggsignif icon indicating copy to clipboard operation
ggsignif copied to clipboard

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

Open Dobrokhotov1989 opened this issue 2 years ago • 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 avatar Jul 25 '22 07:07 Dobrokhotov1989

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

drfalco avatar Jun 25 '23 14:06 drfalco

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

Dobrokhotov1989 avatar Jun 25 '23 15:06 Dobrokhotov1989