Skip to content

ways to put multiple graphs on single page (using ggplot2)

3 messages · Juliet Hannah, Hadley Wickham, Dieter Menne

#
Hi, Here are three plots:

library(ggplot2)
data(diamonds)
randind <- sample(nrow(diamonds),1000,replace=FALSE)
dsmall <- diamonds[randind,]

qplot(carat, data=dsmall, geom="histogram",binwidth=1)
qplot(carat, data=dsmall, geom="histogram",binwidth=.1)
qplot(carat, data=dsmall, geom="histogram",binwidth=.01)

What are ways to put these three plots on a single page and label them
A, B, and C.

In general, do you use R directly for these tasks, or do you use an
image editor? If you use an editor, which one do you use?
I'm working on Windows. Thanks for your time.

Regards,

Juliet
#
Hi Juliet,

Have a look at the last section in http://had.co.nz/ggplot2/book/polishing.pdf

Hadley
On Mon, Mar 2, 2009 at 12:35 PM, Juliet Hannah <juliet.hannah at gmail.com> wrote:

  
    
#
Juliet Hannah <juliet.hannah <at> gmail.com> writes:
(How to layout on one page)

library(ggplot2)
data(diamonds)
randind <- sample(nrow(diamonds),1000,replace=FALSE)
dsmall <- diamonds[randind,]

a= qplot(carat, data=dsmall, geom="histogram",binwidth=1)
b= qplot(carat, data=dsmall, geom="histogram",binwidth=.1)
c=qplot(carat, data=dsmall, geom="histogram",binwidth=.01)
 
## Stolen from ggplot documenation

pdf("polishing-layout.pdf", width = 8, height = 6)
grid.newpage()
pushViewport(viewport(layout = grid.layout(2, 2)))
vplayout <- function(x, y)
viewport(layout.pos.row = x, layout.pos.col = y)
print(a, vp = vplayout(1, 1:2))
print(b, vp = vplayout(2, 1))
print(c, vp = vplayout(2, 2))
dev.off()