Advertisement
Guest User

Untitled

a guest
Aug 2nd, 2014
232
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 1.61 KB | None | 0 0
  1. library(ggplot2)
  2. library(gridExtra)
  3.  
  4. df1 <- data.frame(Var1 = rnorm(100), Var2 = rnorm(100) )
  5. df2 <- data.frame(Var1 = rnorm(100), Var2 = rnorm(100, sd = 1000000) )
  6.  
  7. wide1 <- ggplot(df1, aes(x=Var1, y=Var2)) + geom_point()
  8. wide2 <- ggplot(df2, aes(x=Var1, y=Var2)) + geom_point()
  9. wide3 <- ggplot(df1, aes(x=Var1, y=Var2)) + geom_point()
  10. narrow1 <- ggplot(df1, aes(x=Var1, y=Var2)) + geom_point()
  11.  
  12. grid.newpage() # Open a new page on grid device
  13. pushViewport(viewport(layout = grid.layout(5, 3)))
  14. print(wide1, vp = viewport(layout.pos.row = 3, layout.pos.col = 1:3))
  15. print(wide2, vp = viewport(layout.pos.row = 4, layout.pos.col = 1:3))
  16. print(wide1, vp = viewport(layout.pos.row = 5, layout.pos.col = 1:3))
  17. print(narrow1, vp = viewport(layout.pos.row = 1:2, layout.pos.col = 1))
  18. print(narrow1, vp = viewport(layout.pos.row = 1:2, layout.pos.col = 2))
  19. print(narrow1, vp = viewport(layout.pos.row = 1:2, layout.pos.col = 3))
  20.  
  21. gp1<- ggplot_gtable(ggplot_build(wide1))
  22. gp2<- ggplot_gtable(ggplot_build(wide2))
  23. gp3<- ggplot_gtable(ggplot_build(wide3))
  24. maxWidth = unit.pmax(gp1$widths[2:3], gp2$widths[2:3],gp3$widths[2:3])
  25. gp1$widths[2:3] <- maxWidth
  26. gp2$widths[2:3] <- maxWidth
  27. gp3$widths[2:3] <- maxWidth
  28. grid.arrange(gp1,gp2,gp3)
  29.  
  30. grid.newpage() # Open a new page on grid device
  31. pushViewport(viewport(layout = grid.layout(5, 3)))
  32. print(grid.arrange(gp1,gp2,gp3), vp = viewport(layout.pos.row = 3:5, layout.pos.col = 1:3))
  33. print(narrow1, vp = viewport(layout.pos.row = 1:2, layout.pos.col = 1))
  34. print(narrow1, vp = viewport(layout.pos.row = 1:2, layout.pos.col = 2))
  35. print(narrow1, vp = viewport(layout.pos.row = 1:2, layout.pos.col = 3))
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement