Skip to content

patchwork will get subscript out of bounds when using y axis on the right #340

Description

@smouksassi
library(ggplot2)
library(patchwork)
library(egg)
#> Loading required package: gridExtra
p1 <- ggplot(mtcars) + geom_point(aes(mpg, disp)) +
  facet_grid(cyl~ vs,scales="free",switch="both",space = "free_x")+
  theme(strip.placement = "outside",
        axis.title.y.left = element_blank(),
        axis.title.x = element_blank(),
        strip.text.y.left = element_text(angle=0)) 
p2 <- ggplot(mtcars) + geom_boxplot(aes(gear, disp, group = gear))+
  facet_grid(cyl~ vs,scales="free",switch="both",space = "free_x")+
  scale_y_continuous( position = "left")+
  theme(strip.placement = "outside",
        axis.title.y.left = element_blank(),
        axis.title.x = element_blank(),
        strip.text.y.left = element_blank()) 

p1 + p2

p1 +(p2+ scale_y_continuous( position = "right"))
#> Scale for y is already present.
#> Adding another scale for y, which will replace the existing scale.
#> Error in FUN(X[[i]], ...): subscript out of bounds

egg::ggarrange(p1 ,(p2+ scale_y_continuous( position = "right"))
, ncol =2)
#> Scale for y is already present.
#> Adding another scale for y, which will replace the existing scale.

workaround is to use egg ggarrange

Created on 2023-11-30 with reprex v2.0.2

Activity

  1. LukasWallrich commented on Dec 11, 2023

    @LukasWallrich

    (Deleted my comment as the similar faceting issue is fixed in the current version - this issue still occurs, though)

  2. added a commit that references this issue on Feb 5, 2024
    77a1e1b
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions