# R: Useful Panel Functions

panel.functions {lattice} | R Documentation

## Useful Panel Functions

### Description

These are predefined panel functions available in lattice for use in constructing new panel functions (usually on-the-fly).

### Usage

    panel.abline(a = NULL, b = 0,
                 h = NULL, v = NULL,
                 reg = NULL, coef = NULL,
                 col, col.line, lty, lwd, alpha, type,
                 ...)

    panel.curve(expr, from, to, n = 101,
                curve.type = "l",
                col, lty, lwd, type,
                ...)
    panel.rug(x = NULL, y = NULL,
              regular = TRUE,
              start = if (regular) 0 else 0.97,
              end = if (regular) 0.03 else 1,
              x.units = rep("npc", 2),
              y.units = rep("npc", 2),
              col, lty, lwd, alpha,
              ...)
    panel.average(x, y, fun = mean, horizontal = TRUE,
                  lwd, lty, col, col.line, type,
                  ...)
    panel.linejoin(x, y, fun = mean, horizontal = TRUE,
                   lwd, lty, col, col.line, type,
                   ...)

    panel.fill(col, border, ...)
    panel.grid(h=3, v=3, col, col.line, lty, lwd, ...)
    panel.lmline(x, y, ...)
    panel.loess(x, y, span = 2/3, degree = 1,
                family = c("symmetric", "gaussian"),
                evaluation = 50,
                lwd, lty, col, col.line, type,
                horizontal = FALSE,
                ...)
    panel.mathdensity(dmath = dnorm, args = list(mean=0, sd=1),
                      n = 50, col, col.line, lwd, lty, type,
                      ...)

### Arguments

`x, y` | variables defining the contents of the panel

`a, b`

Coefficients of the line to be added by `panel.abline`. `a` can be a vector of length 2, representing the coefficients of the line to be added, in which case `b` should be missing. `a` can also be an appropriate ‘regression’ object, i.e., an object which has a `coef` method that returns a length 2 numeric vector. The corresponding line will be plotted. The `reg` argument will override `a` if specified.

`coef` | Coefficients of the line to be added as a length 2 vector
`reg` | A regression object. The corresponding fitted line will be drawn

`h, v`

For `panel.abline`, these are numeric vectors giving locations respectively of horizontal and vertical lines to be added to the plot, in native coordinates. For `panel.grid`, these usually specify the number of horizontal and vertical reference lines to be added to the plot. Alternatively, they can be negative numbers. `h=-1` and `v=-1` are intended to make the grids aligned with the axis labels. This doesn't always work; all that actually happens is that the locations are chosen using `pretty`, which is also how the label positions are chosen in the most common cases (but not for factor or date-time variables, for instance). `h` and `v` can be negative numbers other than `-1`, in which case `-h` and `-v` (as appropriate) is supplied as the `n` argument to `pretty`.

`expr` | expression as a function of x or a function to plot as a curve
`n` | the number of points to use for drawing the curve
`regular` | logical indicating whether the ‘rug’ is to be drawn on the regular side (left / bottom) or not (right / top)
`start, end` | endpoints of rug segments, in normalized parent coordinates (between 0 and 1). Defaults depend on value of regular, and cover 3% of the panel width and height
`x.units, y.units` | character vector, replicated to be of length two. Specifies the (grid) units associated with `start` and `end` above. `x.units` and `y.units` are for the rug on the x-axis and y-axis respectively (and thus are associated with `start` and `end` values on the y and x scales respectively).
`from, to` | optional lower and upper x-limits of curve. If missing, limits of current panel are used
`curve.type` | type of curve (`"p"` for points, etc), passed to `llines`
`col, col.line, lty, lwd, alpha, border` | graphical parameters
`type` | usually ignored. This is present only to make sure an explicitly specified `type` argument (perhaps meant for another function) doesn't affect the display.
`span, degree, family, evaluation` | arguments to `loess.smooth`, for which `panel.loess` is essentially a wrapper
`fun` | the function that will be applied to the subset of x(y) determined by the unique values of y(x)
`horizontal` | logical. If FALSE, the plot is ‘transposed’ in the sense that the behaviours of x and y are switched. x is now the ‘factor’. Interpretation of other arguments change accordingly. See documentation of `bwplot` for a fuller explanation.
`dmath` | A vectorized function that produces density values given a numeric vector named `x`, e.g., `dnorm`
`args` | list giving additional arguments to be passed to dmath
`...` | graphical parameters can be supplied. see function definition for details. Color can usually be specified by `col`, `col.line` and `col.symbol`, the last two overriding the first for lines and points respectively.

### Details

`panel.abline` adds a line of the form `y=a+bx` or vertical and/or horizontal lines. Graphical parameters are obtained from `reference.line` for panel.grid, and `add.line` for the others (can be set using `trellis.par.set` )

`panel.curve` adds a curve, similar to what `curve` does with `add = TRUE`. Graphical parameters for the line are obtained from the `add.line` setting.

`panel.average` treats one of x and y as a factor (according to the value of `horizontal`), calculates `fun` applied to the subsets of the other variable determined by each unique value of the factor, and joins them by a line. Can be used in conjunction with `panel.xyplot` and more commonly with panel.superpose to produce interaction plots. See `xyplot` documentation for an example. `panel.linejoin` is an alias for `panel.average` retained for back-compatibility and may go away in future.

`panel.mathdensity` plots a (usually theoretical) probability density function. This can be useful in conjunction with `histogram` and `densityplot` to visually estimate goodness of fit (note, however, that `qqmath` is more suitable for this).

`panel.rug` adds a rug representation of the (marginal) data to the panel, much like `rug`.

`panel.lmline(x, y)` is equivalent to `panel.abline(lm(y~x))`.

### Author(s)

Deepayan Sarkar Deepayan.Sarkar@R-project.org

### See Also

`loess.smooth`, `panel.axis`, `panel.identify` `identify`, `trellis.par.get`

[Package lattice version 0.16-5 Index]