How to separate two plots in R?

If you just want to see two different plotting windows open at the same time, use dev.new, e.g.

plot(1:10)
dev.new()
plot(10:1)

If you want to draw two plots in the same window then, as Shane mentioned, set the mfrow parameter.

par(mfrow = c(2,1))
plot(1:10)
plot(10:1)

If you want to try something a little more advanced, then you can take a look at lattice graphics or ggplot, both of which are excellent for creating conditioned plots (plots where different subsets of data appear in different frames).

A lattice example:

library(lattice)
dfr <- data.frame(
  x   = rep(1:10, 2), 
  y   = c(1:10, 10:1), 
  grp = rep(letters[1:2], each = 10)
)
xyplot(y ~ x | grp, data = dfr)

A ggplot example. (You’ll need to download ggplot from CRAN first.)

library(ggplot2)
qplot(x, y, data = dfr, facets = grp ~ .)
#or equivalently
ggplot(dfr, aes(x, y)) + geom_point() + facet_grid(grp ~ .)

Leave a Comment