R: Plot a smooth approximation of z over x and y.

panel.2dsmoother {latticeExtra} | R Documentation

## 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

    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

### See Also

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

[Package latticeExtra version 0.6-28 Index]