Plot a smooth approximation of z over x and y.

Share:

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

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")

Want to suggest features or report bugs for rdrr.io? Use the GitHub issue tracker.