Today I found out about the grid.arrange function for R (it's in the gridExtra package). It's one of those things which would have been useful to know about years ago. I just found it on a Stackoverflow answer today. The function just takes plots and squishes them together into a single canvas. It's easy, too: just enter
grid.arrange(p1, p2, nrow=2)
and you have everything in one place. The results look great with ggplot's faceting, too!
The extensive package library is absolutely one of the nicest things about R.