\name{panel.2dsmoother} \alias{panel.2dsmoother} \title{ Plot a smooth approximation of z over x and y. } \description{ Plot a smooth approximation, using \code{\link{loess}} by default, of one variable (\code{z}) against two others (\code{x} and \code{y}). This panel function should be used with a \code{\link{levelplot}}. } \usage{ panel.2dsmoother(x, y, z, subscripts = TRUE, form = z ~ x * y, method = "loess", ..., args = list(), n = 100) } \arguments{ \item{x, y, z}{ data points. If these are missing, they will be looked for in the environment of \code{form}. So in many cases you can skip these if passing \code{form}. In fact, for convenience, the formula can be passed as the first argument (i.e. \code{x}). } \item{form, method}{ the smoothing model is constructed (approximately) as \code{method(form, data = list(x=x, y=y, z=z), {args})}. See the Examples section for common choices. } \item{subscripts}{ data indices for the current packet, as passed in by \code{levelplot}. } \item{\dots}{ further arguments passed on to \code{\link{panel.levelplot}}. } \item{args}{ a list of further arguments to the model function (\code{method}). } \item{n}{ number of equi-spaced 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 \code{predict} method argument. } \author{ Felix Andrews \email{felix@nfrac.org} } \seealso{ \code{\link{loess}}, \code{\link{panel.smoother}} } \examples{ 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") } \keyword{ dplot }