Lattice Graphics

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 panel in 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 exception of piechart.

Lattice is built upon the Grid Graphics engine for R being developed by Paul Murrell and requires the grid add-on package.

Type 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 printed. This often causes confusion when the high level functions are called inside another function (most often 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 particular, changing par() settings have no effect on lattice plots.


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

Lattice Webpage:

See Also

To get a general idea of what arguments are generally accepted by Lattice functions, see xyplot.

To learn how to customise the Graphical parameters used by the Lattice functions, see trellis.par.set.

To learn how to initialise new devices or change the settings of the current device, see trellis.device

To learn about sophisticated (non-default) printing capabilities, see print.trellis. Also described there are the possibilities to enhance the plots thus produced (using locator like functionality).

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

histogram histograms

qqmath quantile plots against mathematical distributions

stripplot 1-dimensional scatterplot


qq q-q plot for comparing two distributions xyplot scatter plot (and possibly a lot more)


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)

Hypervariate: splom scatterplot matrix parallel parallel coordinate plots Miscellaneous:

rfs residual and fitted value plot (also see oneway)

tmd Tukey Mean-Difference plot

Lattice also has a collection of convenience functions that correspond to the base graphics primitives lines, 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.

  • Lattice
Documentation reproduced from package lattice, version 0.10-10, License: GPL version 2 or later

Community examples

Looks like there are no examples yet.