Rcmdr (version 1.2-4)

scatter3d: Three-Dimensional Scatterplots and Point Identification

Description

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.

Usage

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)

Arguments

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
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 positiv
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, s
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).

Value

  • 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.

See Also

rgl.open, gam

Examples

Run this code
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")))

Run the code above in your browser using DataCamp Workspace