Draws a 3D scatterplot.

```
plot3d(x, ...)
# S3 method for default
plot3d(x, y, z,
xlab, ylab, zlab, type = "p", col,
size, lwd, radius,
add = FALSE, aspect = !add,
xlim = NULL, ylim = NULL, zlim = NULL,
forceClipregion = FALSE, ...)
# S3 method for mesh3d
plot3d(x, xlab = "x", ylab = "y", zlab = "z", type = c("shade", "wire", "dots"),
add = FALSE, ...)
decorate3d(xlim, ylim, zlim,
xlab = "x", ylab = "y", zlab = "z",
box = TRUE, axes = TRUE, main = NULL, sub = NULL,
top = TRUE, aspect = FALSE, expand = 1.03,
...)
```

x, y, z

vectors of points to be plotted. Any reasonable way of defining the
coordinates is acceptable. See the function `xyz.coords`

for details.

xlab, ylab, zlab

labels for the coordinates.

type

For the default method, a single character indicating the type of item to plot.
Supported types are: 'p' for points, 's' for spheres,
'l' for lines, 'h' for line segments
from `z = 0`

, and 'n' for nothing. For the `mesh3d`

method, one of
'shade', 'wire', or 'dots'. Partial matching is used.

col

the color to be used for plotted items.

size

the size for plotted points.

lwd

the line width for plotted items.

radius

the radius of spheres: see Details below.

add

whether to add the points to an existing plot.

aspect

either a logical indicating whether to adjust the aspect ratio, or a new ratio.

expand

how much to expand the box around the data, if it is drawn.

xlim, ylim, zlim

In `plot3d`

, if not `NULL`

, set clipping
limits for the plot. In `decorate3d`

, these are used
for the labels.

forceClipregion

Force a clipping region to be used, whether or not limits are given.

…

additional parameters which will be passed to `par3d`

, `material3d`

or `decorate3d`

.

box, axes

whether to draw a box and axes.

main, sub

main title and subtitle.

top

whether to bring the window to the top when done.

`plot3d`

is called for the side effect of drawing the plot; a vector
of object IDs is returned.

`decorate3d`

adds the usual decorations to a plot: labels, axes, etc.

If any of `xlim`

, `ylim`

or `zlim`

are specified,
they should be length two vectors giving lower and upper
clipping limits for the corresponding coordinate. `NA`

limits will be ignored.

If any clipping limits are given, then the data will be
plotted in a newly created subscene within the current one;
otherwise plotting will take place directly in the current
subscene. This subscene is named `"clipregion"`

in the results. This may affect the appearance of transparent
objects if some are drawn in the `plot3d`

call and others after,
as rgl will not attempt to depth-sort objects if they are
in different subscenes. It is best to draw all overlapping
transparent objects in the same subscene. See the example
in `planes3d`

. It will also affect the use
of `clipplanes3d`

; clipping planes need to be in the
same subscene as the objects being clipped.

Use `forceClipregion = TRUE`

to force creation of this
subscene even without specifying limits.

`plot3d`

is a partial 3D analogue of plot.default.

Missing values in the data are skipped, as in standard graphics.

If `aspect`

is `TRUE`

, aspect ratios of `c(1, 1, 1)`

are passed to
`aspect3d`

. If `FALSE`

, no aspect adjustment is done. In other
cases, the value is passed to `aspect3d`

.

With `type = "s"`

, spheres are drawn centered at the specified locations.
The radius may be controlled by `size`

(specifying the size relative
to the plot display, with the default `size = 3`

giving a radius
about 1/20 of the plot region) or `radius`

(specifying it on the data scale
if an isometric aspect ratio is chosen, or on an average scale
if not).

`plot.default`

,
`open3d`

, `par3d`

.
There are `plot3d.function`

and `plot3d.deldir`

methods for plotting surfaces.

```
# NOT RUN {
open3d()
x <- sort(rnorm(1000))
y <- rnorm(1000)
z <- rnorm(1000) + atan2(x, y)
plot3d(x, y, z, col = rainbow(1000))
# }
```

Run the code above in your browser using DataCamp Workspace