panel.2dsmoother {latticeExtra}R Documentation

Plot a smooth approximation of z over x and y.


Plot a smooth approximation, using loess by default, of one variable (z) against two others (x and y).

This panel function should be used with a levelplot.


panel.2dsmoother(x, y, z, subscripts = TRUE,
    form = z ~ x * y, method = "loess", ...,
    args = list(), n = 100)


x, y, z

data points. If these are missing, they will be looked for in the environment of form. So in many cases you can skip these if passing form. In fact, for convenience, the formula can be passed as the first argument (i.e. x).

form, method

the smoothing model is constructed (approximately) as method(form, data = list(x=x, y=y, z=z), {args}). See the Examples section for common choices.


data indices for the current packet, as passed in by levelplot.


further arguments passed on to panel.levelplot.


a list of further arguments to the model function (method).


number of equi-spaced points along each of x and y on which to evaluate the smooth function.


This should work with any model function that takes a formula argument, and has a predict method argument.


Felix Andrews

See Also

loess, panel.smoother


xyz <- data.frame(x = rnorm(100), y = rnorm(100))
xyz$z <- with(xyz, x * y + rnorm(100, sd = 1))

levelplot(z ~ x * y, xyz, panel = panel.2dsmoother)

## showing data points on the same color scale
levelplot(z ~ x * y, xyz,
          panel = panel.levelplot.points, cex = 1.2) +
  layer_(panel.2dsmoother(..., n = 200))

## simple linear regression model
levelplot(z ~ x * y, xyz,
          panel = panel.levelplot.points) +
  layer_(panel.2dsmoother(..., method = "lm"))

## GAM smoother with smoothness by cross validation
if (require("mgcv"))
  levelplot(z ~ x * y, xyz, panel = panel.2dsmoother,
            form = z ~ s(x, y), method = "gam")
[Package latticeExtra version 0.6-25 Index]