Lattice is a package for R that makes Trellis graphics (originally developed for S by William S. Cleveland and colleagues at Bell Labs). Quick-R has an overview and examples of the different lattice plotting functions. One quirk of the software is that lattice wants all data presented in the same format. Quick-R: “~x|A means display numeric variable x for each level of factor A. y~x | A*B means display the relationship between numeric variables y and x separately for every combination of factor A and B levels.”
Lattice makes good looking plots, but you can’t use standard graphics parameters like mfrow=c(x,y) to show multiple plots at once. My lab mate Owen showed me a trick to get lattice to draw multiple plots for a number of numeric variables using melt() from the reshape package. melt() expands a data frame into variable/value columns for one or more id columns. Here’s an example of a data frame d, with 10 rows of numerical variables a,b,c and a condition factor equal to 1 or 2.
library(lattice)
library(reshape)
d <- data.frame(a=rnorm(10), b=rnorm(10), c=rnorm(10), cond=factor(sample(1:2,10,replace=TRUE)))
stripplot(value~cond|variable,melt(d, id=”cond”),scales=list(relation=”free”))
Setting the scales parameter allows the panels to have different scales for their axes; setting the parameter as.table=TRUE would have plotted from top left to bottom right.

You can also get the same plots as above using featurePlot in the caret package: featurePlot(x, y).
To get density plots of the predictor variables a,b,c:
densityplot(~value|variable,melt(d),scales=list(relation=”free”))

November 5, 2009 at 2:20 pm
Hey Mike,
Have you looked at using ggplot2? Its much slower than lattice, but vastly superior. Usually you can produce more complex, publication quality graphs, in fewer lines of code. I’ve been using it frequently at work the past few weeks, its really quite wonderful. Check out the equivalent of the above here:
http://had.co.nz/ggplot2/facet_wrap.html
- Jake
November 5, 2009 at 7:38 pm
Yeah, it’s made by the same guy that made the reshape package. Nice looking plots.