Plot a smooth approximation of z over x and y.
Description
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
.
Usage
1 2 3  panel.2dsmoother(x, y, z, subscripts = TRUE,
form = z ~ x * y, method = "loess", ...,
args = list(), n = 100)

Arguments
x, y, z 
data points. If these are missing, they will be looked for in the
environment of 
form, method 
the smoothing model is constructed (approximately) as

subscripts 
data indices for the current packet, as passed in by 
... 
further arguments passed on to 
args 
a list of further arguments to the model function ( 
n 
number of equispaced points along each of x and y on which to evaluate the smooth function. 
Details
This should work with any model function that takes a formula
argument, and has a predict
method argument.
Author(s)
Felix Andrews felix@nfrac.org
See Also
loess
,
panel.smoother
Examples
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20  set.seed(1)
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")
