Preserve proportion of graphs using grid.arrange
ggplot2, r
Solution
Try this, which uses `cbind.gtable`:
grid.draw(cbind(ggplotGrob(p3), ggplotGrob(p2), size="last"))
Problem
I'm trying to arrange multiple plots using `grid.arrange`. It does the job by the book, and when calling: ``` p1 <- ggplot(subset(mtcars, cyl = 4), aes(wt, mpg, colour = cyl)) + geom_point() p2 <- ggplot(subset(mtcars, cyl = 8), aes(wt, mpg, colour = cyl)) + geom_point() grid.arrange(p1, p2, ncol = 2) ``` I get two nice plots, symmetrical in size: My graphs refer to different parameters but they do share the same colour coding for groups. So I'd like to remove the legend from all but one and find a nice place for it. However when I try: ``` p3 <- ggplot(subset(mtcars, cyl = 8), aes(wt, mpg, colour = cyl)) + geom_point() + guides(colour=FALSE) grid.arrange(p3, p2, ncol = 2) ``` The plot without the legend gets (correctly) bigger: I'd like to keep the size (as a length of x axis) to stay the same across graphs. I'm aware I could use faceting here, but I'll also need to combine various graphs that (I think) will be hard to implement using facets.. Is it possible to do it with `grid.arrange`? Any other solutions that could help here?