Implementation of Trellis Graphics in R
Trellis Graphics is a framework for data visualization developed at the Bell Labs by Rick Becker, Bill Cleveland et al, extending ideas presented in Bill Cleveland's 1993 book Visualizing Data.
Lattice is best thought of as an implementation of Trellis Graphics
for R. Its interface is based on the implementation in S-PLUS,
but there are several differences. To the extent possible, care has
been taken to ensure that existing Trellis code written for S-PLUS
works unchanged (or with minimal change) in Lattice. If you are having
problems porting S-PLUS code, read the entry for
the documentation for
xyplot. The Lattice website
referenced below has some useful material as well.
Most high level Trellis functions in S-PLUS are implemented, with the
Lattice is built upon the Grid Graphics engine for R being developed
by Paul Murrell and requires the
grid add-on package.
library(help = lattice) to see a list of (public)
Lattice graphics functions for which further documentation is
available. Apart from the documentation accompanying this package,
several documents outlining the use of Trellis graphics is available
from Bell Lab's website that might provide a holistic introduction to
the Trellis paradigm. Lattice also has a website with some tips.
High level Lattice functions (like
xyplot) are different
from conventional S graphics functions because they don't actually
draw anything. Instead, they return an object of class ``trellis''
which has to be then
source) and hence don't produce any output.
Lattice plots are highly customizable via user-modifiable settings.
However, these are completely unrelated to base graphics settings; in
par() settings have no effect on lattice
Bell Lab's Trellis Page:
Cleveland, W.S. (1993) Visualizing Data.
Becker, R.A., Cleveland, W.S. and Shyu, M. ``The Visual Design and Control of Trellis Display'', Journal of Computational and Graphical Statistics
To get a general idea of what arguments are generally accepted by
Lattice functions, see
To learn how to customise the Graphical parameters used by the Lattice
To learn how to initialise new devices or change the settings of the
current device, see
To learn about sophisticated (non-default) printing capabilities, see
print.trellis. Also described there are the
possibilities to enhance the plots thus produced (using
Here is a list of `high level' functions in the Lattice library with a brief description of what they do:
barchart bar plots
bwplot box and whisker plots
densityplot kernel density plots
dotplot dot plots
qqmath quantile plots against mathematical distributions
stripplot 1-dimensional scatterplot
levelplot level plots (similar to image plots in R)
contourplot contour plots
cloud 3-D scatter plots
wireframe 3-D surfaces (similar to persp plots in R)
tmd Tukey Mean-Difference plot
Lattice also has a collection of convenience functions that correspond
to the base graphics primitives
points, etc. They are implemented using Grid graphics,
but try to be as close to the base versions as possible in terms of
their argument list. These functions have imaginative names like
llines are are often useful when writing (or porting
from S-PLUS code) nontrivial panel functions.