contour.lm {rsm} | R Documentation |
contour
and persp
methods that will work with any lm
object
involving two or more numerical predictors.
## S3 method for class 'lm': contour(x, form, at, bounds, zlim, xlabs, hook, plot.it=TRUE, image=FALSE, img.col=terrain.colors(50), ...) ## S3 method for class 'lm': image(x, form, at, bounds, zlim, xlabs, hook, ...) ## S3 method for class 'lm': persp(x, form, at, bounds, zlim, zlab, xlabs, col = "white", contours = NULL, hook, theta = -25, phi = 20, r = 4, border = NULL, box = TRUE, ticktype = "detailed", ...)
x |
A lm object. |
form |
A formula, or a list of formulas. |
at |
Optional named list of fixed values to use for variables other than the axis variables. If not provided, the mean is used for numeric variables, or the first level if it is a factor. |
bounds |
Optional named list of bounds or grid values to use for the variables having the same names. See details. |
zlim |
Optional zlim setting passed to image .
If not provided, the range of values across all plotted surfaces is used. |
zlab |
Optional label for the vertical axis. |
xlabs |
Alternate labels for predictor axes (see Details). |
hook |
Optional list that can contain functions pre.plot and post.plot .
May be used to add annotations or to re-route the graphs to separate files (see Details). |
image |
Set to TRUE if you want an image plot overlaid by contours. |
img.col |
Color map to use when image=TRUE . |
plot.it |
If TRUE , no plot is produced, just the return value. |
col |
Color or colors used for facets in the perspective plot (see details). |
contours |
If non-NULL , specifications for added contour lines in perspective plot. |
theta, phi |
Viewing angles passed to persp (different defaults). |
r |
Viewing distance passed to persp (different default). |
border, box |
Options passed to persp . |
ticktype |
Option passed to persp (different default). |
... |
Additional arguments passed to contour or persp . |
form
may be a single formula or a list of formulas. A simple formula like
x2 ~ x1
will produce a contour plot of the fitted regression surface
for combinations of x2
(vertical axis) and x1
(horizontal axis).
A list of several such simple formulas will produce a contour plot for each formula.
A two-sided formula produces contour plots for each left-hand variable versus each
right-hand variable (except when they are the same); for example,
x1+x3 ~ x2+x3
is equivalent to
list(x1~x2, x3~x2, x1~x3)
.
A one-sided formula produces contour plots for each pair of variables. For example,
~ x1+x2+x3
is equivalent to
list(x2~x1, x3~x1, x3~x2)
.
For any variables not in the bounds
argument, a grid of 26 equally-spaced
values in the observed range of that variable is used. If you specify a vector of
length 2, it is interpreted as the desired range for that variable and a grid of 26
equally-spaced points is generated. If it is a vector of length 3, the first two elements are used
as the range, and the third as the number of grid points.
If it is a vector of length 4 or more, those
values are used directly as the grid values.
By default, the predictor axes are labeled using the variable names in form
,
unless x
is an rsm
object, in which case the variable-coding formulas,
if present, are used to generate axis labels.
These labels are replaced by the entries in xlabs
if provided. One must be careful using this
to make sure that the names are mapped correctly. The entries in xlabs
should match the respective unique variable names in form
, after sorting them in
(case-insensitive) alphabetical order. Note that if form
is changed, it may also
be necessary to change xlabs
.
In persp
, contour lines may be added via the contours
argument. It may be a boolean or character value, or a list
.
If boolean and TRUE
, default black contour lines are added to the bottom surface of the box. Character values of "top"
, "bottom"
add black contour lines to the specified surface of the box. contours = "colors"
puts contour lines on the bottom using the same colors as those
at the same height on the surface. Other character values of contours
are taken to be the desired color of the contour lines, plotted at the bottom.
If contours
is a list
, its elements (all are optional) are used as follows:
z
"bottom"
(default), "top"
, or a numeric value.col
"colors"
to match the surface colors.lwd
Since these functions often produce several plots, the hook
argument is provided if special setups or annotations are needed for each plot. It
should be a list that defines one or both of the functions pre.plot
and post.plot
. Both of these functions have one argument, the character
vector labs
for that plot (see Value documentation).
Additional examples and discussion of these plotting functions is available via vignette("rsm-plots")
.
A list
containing information that is plotted.
Each list item is itself a list
with the following components:
x, y |
The values used for the x and y axes |
z |
The matrix of fitted response values |
labs |
Character vector of length 4: Elements 1 and 2 are the x and y axis labels, and elements 3 and 4 are their original variable names |
zlim |
The computed or provided zlim values |
transf |
(persp only) The 3D transformation for trans3d |
Russell V. Lenth
Lenth RV (2009). ``Response-Surface Methods in R, Using rsm'', Journal of Statistical Software, 32(7), 1–17. http://www.jstatsoft.org/v32/i07/.
library (rsm) heli.rsm = rsm (ave ~ block + SO(x1, x2, x3, x4), data = heli) # Plain contour plots par (mfrow = c (2,3)) contour (heli.rsm, ~x1+x2+x3+x4, at=canonical(heli.rsm)$xs) # Same with image overlay and extra annotations showing # stationary point and "at" values # Demonstrates use of 'hook' argument xs = canonical(heli.rsm)$xs myhook = list() myhook$post.plot = function(lab) { idx = sapply(lab[3:4], grep, names(xs)) points (xs[idx[1]], xs[idx[2]], pch=2, col="red") main = paste("Predicted response versus", lab[3], "and", lab[4]) atlabs = paste(names(xs[-idx]), round(xs[-idx], 3), sep = " = ") atlabs = paste(atlabs, collapse = ", ") title(c(main, paste("at", atlabs))) } contour (heli.rsm, ~x1+x2+x3+x4, at=xs, hook=myhook, image=TRUE) # Default perspective views persp (heli.rsm, ~x1+x2+x3+x4, at=canonical(heli.rsm)$xs) # Same plots, souped-up with facet coloring and axis labeling persp (heli.rsm, ~x1+x2+x3+x4, contours="col", col=rainbow(40), at=canonical(heli.rsm)$xs, xlabs = c("Wing area", "Wing length", "Body width", "Body length"), zlab = "Flight time") ## Not run: ### Hints for creating graphics files for use in publications... # Save perspective plots in one PDF file (will be six pages long) pdf(file = "heli-plots.pdf") persp (heli.rsm, ~x1+x2+x3+x4, at=canonical(heli.rsm)$xs) dev.off() # Save perspective plots in six separate PNG files png.hook = list() png.hook$pre.plot = function(lab) png(file = paste(lab[3], lab[4], ".png", sep = "")) png.hook$post.plot = function(lab) dev.off() persp (heli.rsm, ~x1+x2+x3+x4, at=canonical(heli.rsm)$xs, hook = png.hook) ## End(Not run)