Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- library(ggplot2)
- library(gridExtra)
- df1 <- data.frame(Var1 = rnorm(100), Var2 = rnorm(100) )
- df2 <- data.frame(Var1 = rnorm(100), Var2 = rnorm(100, sd = 1000000) )
- wide1 <- ggplot(df1, aes(x=Var1, y=Var2)) + geom_point()
- wide2 <- ggplot(df2, aes(x=Var1, y=Var2)) + geom_point()
- wide3 <- ggplot(df1, aes(x=Var1, y=Var2)) + geom_point()
- narrow1 <- ggplot(df1, aes(x=Var1, y=Var2)) + geom_point()
- grid.newpage() # Open a new page on grid device
- pushViewport(viewport(layout = grid.layout(5, 3)))
- print(wide1, vp = viewport(layout.pos.row = 3, layout.pos.col = 1:3))
- print(wide2, vp = viewport(layout.pos.row = 4, layout.pos.col = 1:3))
- print(wide1, vp = viewport(layout.pos.row = 5, layout.pos.col = 1:3))
- print(narrow1, vp = viewport(layout.pos.row = 1:2, layout.pos.col = 1))
- print(narrow1, vp = viewport(layout.pos.row = 1:2, layout.pos.col = 2))
- print(narrow1, vp = viewport(layout.pos.row = 1:2, layout.pos.col = 3))
- gp1<- ggplot_gtable(ggplot_build(wide1))
- gp2<- ggplot_gtable(ggplot_build(wide2))
- gp3<- ggplot_gtable(ggplot_build(wide3))
- maxWidth = unit.pmax(gp1$widths[2:3], gp2$widths[2:3],gp3$widths[2:3])
- gp1$widths[2:3] <- maxWidth
- gp2$widths[2:3] <- maxWidth
- gp3$widths[2:3] <- maxWidth
- grid.arrange(gp1,gp2,gp3)
- grid.newpage() # Open a new page on grid device
- pushViewport(viewport(layout = grid.layout(5, 3)))
- print(grid.arrange(gp1,gp2,gp3), vp = viewport(layout.pos.row = 3:5, layout.pos.col = 1:3))
- print(narrow1, vp = viewport(layout.pos.row = 1:2, layout.pos.col = 1))
- print(narrow1, vp = viewport(layout.pos.row = 1:2, layout.pos.col = 2))
- print(narrow1, vp = viewport(layout.pos.row = 1:2, layout.pos.col = 3))
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement