scatter3d {Rcmdr} | R Documentation |
The scatter3d
function uses the rgl
package to draw 3D scatterplots
with various regression surfaces. The function identify3d
allows you to label points interactively with the mouse:
Press the right mouse button (on a two-button mouse) or the centre button (on a
three-button mouse), drag a
rectangle around the points to be identified, and release the button.
Repeat this procedure for each point or
set of ``nearby'' points to be identified. To exit from point-identification mode,
click the right (or centre) button an empty region of the plot.
scatter3d(x, y, z, xlab=deparse(substitute(x)), ylab=deparse(substitute(y)), axis.scales=TRUE, zlab=deparse(substitute(z)), revolutions=0, bg.col=c("white", "black"), axis.col=if (bg.col == "white") c("darkmagenta", "black", "darkcyan") else c("darkmagenta", "white", "darkcyan"), surface.col=c("blue", "green", "orange", "magenta", "cyan", "red", "yellow", "gray"), neg.res.col="red", pos.res.col="green", square.col=if (bg.col == "white") "black" else "gray", point.col="yellow", text.col=axis.col, grid.col=if (bg.col == "white") "black" else "gray", fogtype=c("exp2", "linear", "exp", "none"), residuals=(length(fit) == 1), surface=TRUE, fill=TRUE, grid=TRUE, grid.lines=26, df.smooth=NULL, df.additive=NULL, sphere.size=1, threshold=0.01, speed=1, fov=60, fit="linear", groups=NULL, parallel=TRUE, ellipsoid=FALSE, level=0.5, model.summary=FALSE) identify3d(x, y, z, axis.scales=TRUE, groups=NULL, labels=1:length(x), col=c("blue", "green", "orange", "magenta", "cyan", "red", "yellow", "gray"), offset = ((100/length(x))^(1/3)) * 0.02)
x |
variable for horizontal axis. |
y |
variable for vertical axis (response). |
z |
variable for out-of-screen axis. |
xlab, ylab, zlab |
axis labels. |
axis.scales |
if TRUE , label the values of the ends of the axes.
Note: For identify3d to work properly, the value of this argument must
be the same as in scatter3d . |
revolutions |
number of full revolutions of the display. |
bg.col |
background colour; one of "white" , "black" . |
axis.col |
colours for axes; if axis.scales is FALSE , then
the second colour is used for all three axes. |
surface.col |
vector of colours for regression planes,
used in the order specified by fit . |
neg.res.col, pos.res.col |
colours for lines representing negative and positive residuals. |
square.col |
colour to use to plot squared residuals. |
point.col |
colour of points. |
text.col |
colour of axis labels. |
grid.col |
colour of grid lines on the regression surface(s). |
fogtype |
type of fog effect; one of "exp2" , "linear" ,
"exp" , "none". |
residuals |
plot residuals if TRUE ; if residuals="squares" ,
then the squared residuals are shown as squares (using code adapted from Richard
Heiberger). Residuals are available only when there is one surface plotted. |
surface |
plot surface(s) (TRUE or FALSE ). |
fill |
fill the plotted surface(s) with colour (TRUE or FALSE ). |
grid |
plot grid lines on the regression surface(s) (TRUE or FALSE ). |
grid.lines |
number of lines (default, 26) forming the grid, in each of the x and y directions. |
df.smooth |
degrees of freedom for the two-dimensional smooth regression surface;
if NULL (the default), the gam function will select the degrees of freedom
for a smoothing spline by generalized cross-validation; if a positive number, a fixed
regression spline will be fit with the specified degrees of freedom. |
df.additive |
degrees of freedom for each explanatory variable in an additive regression;
if NULL (the default), the gam function will select degrees of freedom
for the smoothing splines by generalized cross-validation; if a positive number
or a vector of two positive numbers, fixed
regression splines will be fit with the specified degrees of freedom for each term. |
sphere.size |
relative sizes of spheres representing points; the actual size is dependent on the number of observations. |
threshold |
if the actual size of the spheres is less than the threshold, points are plotted instead. |
speed |
relative speed of revolution of the plot. |
fov |
field of view (in degrees); controls degree of perspective. |
fit |
one or more of "linear" , "quadratic" , "smooth" ,
"additive" ; to display fitted surface(s); partial matching is supported –
e.g., c("lin", "quad") . |
groups |
if NULL (the default), no groups are defined; if a factor, a different surface
or set of surfaces is plotted for each level of the factor; in this event, the colours in
plane.col are used successively for the points, surfaces, and residuals corresponding to
each level of the factor. |
parallel |
when plotting surfaces by groups , should the surfaces be constrained to be
parallel? A logical value, with default TRUE . |
ellipsoid |
plot concentration ellipsoid(s) (TRUE or FALSE ). |
level |
expected proportion of bivariate-normal observations included in the concentration ellipsoid(s); default is 0.5. |
model.summary |
print summary or summaries of the model(s) fit
(TRUE or FALSE ). scatter3d rescales the three variables
internally to fit in the unit cube; this rescaling will affect regression
coefficients. |
labels |
text labels for the points, one for each point; defaults to the observation indices. |
col |
colours for the point labels, given by group. There must be at
least as many colours as groups; if there are no groups, the first colour is used. Normally, the colours
would correspond to the plane.col argument to scatter3d . |
offset |
vertical displacement for point labels (to avoid overplotting by points). |
scatter3d
not return a useful value; it is used for its side-effect of
creating a 3D scatterplot. indentify3d
returns the labels of the
identified points.
You have to install the rgl
and mgcv
packages to produce 3D plots.
John Fox jfox@mcmaster.ca
## Not run: State.x77 <- as.data.frame(state.x77) with(State.x77, scatter3d(Income, Murder, Illiteracy)) with(State.x77, identify3d(Income, Murder, Illiteracy, labels=row.names(State.x77))) with(State.x77, scatter3d(Income, Murder, Illiteracy, fit=c("linear", "quadratic"))) ## End(Not run)