plot3d {rgl} | R Documentation

## 3D Scatterplot

### Description

Draws a 3D scatterplot.

### Usage

    plot3d(x, ...)
    ## Default S3 method:
    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 class '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,
    	...)

### Arguments

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

### Details

`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).

### Value

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

### Clipping

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.

### Author(s)

Duncan Murdoch

### See Also

`plot.default`, `open3d`, `par3d`. There are `plot3d.function` and `plot3d.deldir` methods for plotting surfaces.

### Examples

      open3d()
      x <- sort(rnorm(1000))
      y <- rnorm(1000)
      z <- rnorm(1000) + atan2(x, y)
      plot3d(x, y, z, col = rainbow(1000))

[Package rgl version 0.99.16 Index]