Closed nonsciencemark closed 6 months ago
This is because geom_vline()
/geom_hline()
are 'special' in that they don't need data, and ggplot2 draws data without facetting variables in every panel. This technically makes these facets non-empty, which is probably why the axes are drawn there (as render_empty
only affects the rendering step, not the setup step).
To work around this, I'd suggest to include the facetting variables in geom_hline()
/geom_vline()
's data and put the intercept in the mapping
argument.
library(ggh4x)
#> Loading required package: ggplot2
ggplot(mtcars) +
aes(x = wt, y = mpg) +
facet_grid2(cyl ~ vs, scales = "free",
independent = TRUE, render_empty = FALSE) +
geom_point() +
geom_hline(
data = vctrs::vec_unique(mtcars[c("cyl", "vs")]),
aes(yintercept = 15)
)
Created on 2023-09-21 with reprex v2.0.2
I'm going to mark this issue as 'won't fix' because this is a quirk in ggplot2 itself rather than ggh4x.
When using
facet_grid2(x ~ y, scales = "free", independent = TRUE, render_empty = FALSE)
, adding a vertical or horizontal line causes axes ticks to appear in the empty plots.