scatter3d  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 twobutton mouse) or the centre button (on a
threebutton 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 pointidentification mode,
click the right (or centre) button in an empty region of the plot.
scatter3d(x, ...) ## S3 method for class 'formula' scatter3d(formula, data, subset, radius, xlab, ylab, zlab, id=FALSE, ...) ## Default S3 method: scatter3d(x, y, z, xlab=deparse(substitute(x)), ylab=deparse(substitute(y)), zlab=deparse(substitute(z)), axis.scales=TRUE, axis.ticks=FALSE, revolutions=0, bg.col=c("white", "black"), axis.col=if (bg.col == "white") c("darkmagenta", "black", "darkcyan") else c("darkmagenta", "white", "darkcyan"), surface.col=carPalette()[1], surface.alpha=0.5, neg.res.col="magenta", pos.res.col="cyan", 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, radius=1, threshold=0.01, speed=1, fov=60, fit="linear", groups=NULL, parallel=TRUE, ellipsoid=FALSE, level=0.5, ellipsoid.alpha=0.1, id=FALSE, model.summary=FALSE, reg.function, reg.function.col=surface.col[length(surface.col)], mouseMode=c(none="none", left="polar", right="zoom", middle="fov", wheel="pull"), ...) 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)
formula 
“model” formula, of the form 
data 
data frame within which to evaluate the formula. 
subset 
expression defining a subset of observations. 
x 
variable for horizontal axis. 
y 
variable for vertical axis (response). 
z 
variable for outofscreen axis. 
xlab, ylab, zlab 
axis labels. 
axis.scales 
if 
axis.ticks 
if 
revolutions 
number of full revolutions of the display. 
bg.col 
background colour; one of 
axis.col 
colours for axes; if 
surface.col 
vector of colours for regression planes,
used in the order specified by 
surface.alpha 
transparency of regression surfaces, from 
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 
residuals 
plot residuals if 
surface 
plot surface(s) ( 
fill 
fill the plotted surface(s) with colour ( 
grid 
plot grid lines on the regression surface(s) ( 
grid.lines 
number of lines (default, 26) forming the grid, in each of the x and z directions. 
df.smooth 
degrees of freedom for the twodimensional smooth regression surface;
if 
df.additive 
degrees of freedom for each explanatory variable in an additive regression;
if 
sphere.size 
general size of spheres representing points; the actual size is dependent on the number of observations. 
radius 
relative radii of the spheres representing the points. This is normally a vector of the
same length as the variables giving the coordinates of the points, and for the 
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 
groups 
if 
parallel 
when plotting surfaces by 
ellipsoid 
plot concentration ellipsoid(s) ( 
level 
expected proportion of bivariatenormal observations included in the concentration ellipsoid(s); default is 0.5. 
ellipsoid.alpha 
transparency of ellipsoids, from 
id 

model.summary 
print summary or summaries of the model(s) fit
( 
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 
offset 
vertical displacement for point labels (to avoid overplotting the points). 
reg.function 
an arithmetic expression that is a function of 
reg.function.col 
color to use for the surface produced by 
mouseMode 
defines what the mouse buttons, etc., do; passed to 
... 
arguments to be passed down. 
The id
argument to scatter3d
can be FALSE
, TRUE
(in which case 2
points will be identified according to their Mahalanobis distances from the center of the data),
or a list containing any or all of the following elements:
if "mahal"
(the default), relatively extreme points are identified automatically
according to their Mahalanobis distances from the centroid (point of means);
if "identify"
, points are identified interactively by rightclicking and dragging a box around them; rightclick
in an empty area to exit from interactivepointidentification mode; if "xz"
, identify extreme points in the
predictor plane; if "y"
, identify unusual values of the response; if "xyz"
identify
unusual values of an variable; if "none"
, no point identification.
See showLabels
for more information.
Number of relatively extreme points to identify automatically (default, 2
,
unless method="identify"
, in which case identification continues until the user
exits).
text labels for the points, one for each point; in the default
method defaults to
the observation indices, in the formula
method to the row names of the data.
vertical displacement for point labels (to avoid overplotting the points).
scatter3d
does not return a useful value; it is used for its sideeffect of
creating a 3D scatterplot. Identify3d
returns the labels of the
identified points.
You have to install the rgl
package to produce 3D plots. On a Macintosh (but not on Windows or Linux), you may also need to install the X11 windowing system. Go to https://www.xquartz.org/ and click on the link for XQuartz. Doubleclick on the downloaded diskimage file, and then doubleclick on XQuartz.pkg
to start the installer. You may take all of the defaults in the installation. After XQuartz is installed, you should restart your Macintosh.
John Fox jfox@mcmaster.ca
Fox, J. and Weisberg, S. (2019) An R Companion to Applied Regression, Third Edition, Sage.
rglpackage
, gam
if(interactive() && require(rgl) && require(mgcv)){ scatter3d(prestige ~ income + education, data=Duncan, id=list(n=3)) Sys.sleep(5) # wait 5 seconds scatter3d(prestige ~ income + education  type, data=Duncan) Sys.sleep(5) scatter3d(prestige ~ income + education  type, surface=FALSE, ellipsoid=TRUE, revolutions=3, data=Duncan) scatter3d(prestige ~ income + education, fit=c("linear", "additive"), data=Prestige) Sys.sleep(5) scatter3d(prestige ~ income + education  type, radius=(1 + women)^(1/3), data=Prestige) Sys.sleep(5) if (require(mvtnorm)){ local({ set.seed(123) Sigma < matrix(c( 1, 0.5, 0.5, 1), 2, 2 ) X < rmvnorm(200, sigma=Sigma) D < data.frame( x1 = X[, 1], x2 = X[, 2] ) D$y < with(D, 10 + 1*x1 + 2*x2 + 3*x1*x2 + rnorm(200, sd=3)) # plot true regression function scatter3d(y ~ x1 + x2, D, reg.function=10 + 1*x + 2*z + 3*x*z, surface=FALSE, revolutions=2) }) } } ## Not run: # requires user interaction to identify points # drag right mouse button to identify points, click right button in open area to exit scatter3d(prestige ~ income + education, data=Duncan, id=list(method="identify")) scatter3d(prestige ~ income + education  type, data=Duncan, id=list(method="identify")) ## End(Not run)
Add the following code to your website.
For more information on customizing the embed code, read Embedding Snippets.