# panel.2dsmoother: Plot a smooth approximation of z over x and y. In latticeExtra: Extra Graphical Utilities Based on Lattice

## 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`. 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. `subscripts` data indices for the current packet, as passed in by `levelplot`. `...` further arguments passed on to `panel.levelplot`. `args` a list of further arguments to the model function (`method`). `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 `predict` method argument.

## Author(s)

Felix Andrews felix@nfrac.org

`loess`, `panel.smoother`
 ``` 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") ```