Learn R Programming

grDevices (version 3.4.0)

xyz.coords: Extracting Plotting Structures

Description

Utility for obtaining consistent x, y and z coordinates and labels for three dimensional (3D) plots.

Usage

xyz.coords(x, y = NULL, z = NULL,
           xlab = NULL, ylab = NULL, zlab = NULL,
           log = NULL, recycle = FALSE, setLab = TRUE)

Arguments

x, y, z
the x, y and z coordinates of a set of points. Both y and z can be left at NULL. In this case, an attempt is made to interpret x in a way suitable for plotting.

If the argument is a formula zvar ~ xvar + yvar, xvar, yvar and zvar are used as x, y and z variables; if the argument is a list containing components x, y and z, these are assumed to define plotting coordinates; if the argument is a matrix or data.frame with three or more columns, the first is assumed to contain the x values, the 2nd the y ones, and the 3rd the z ones -- independently of any column names that x may have.

Alternatively two arguments x and y can be provided (leaving z = NULL). One may be real, the other complex; in any other case, the arguments are coerced to vectors and the values plotted against their indices.

xlab, ylab, zlab
names for the x, y and z variables to be extracted.
log
character, "x", "y", "z" or combinations. Sets negative values to NA and gives a warning.
recycle
logical; if TRUE, recycle (rep) the shorter ones of x, y or z if their lengths differ.
setLab
logical indicating if the resulting xlab and ylab should be constructed from the “kind” of (x,y); otherwise, the arguments xlab and ylab are used.

Value

A list with the components
x
numeric (i.e., double) vector of abscissa values.
y
numeric vector of the same length as x.
z
numeric vector of the same length as x.
xlab
character(1) or NULL, the axis label of x.
ylab
character(1) or NULL, the axis label of y.
zlab
character(1) or NULL, the axis label of z.

See Also

xy.coords for 2D.

Examples

Run this code
xyz.coords(data.frame(10*1:9, -4), y = NULL, z = NULL)

xyz.coords(1:5, stats::fft(1:5), z = NULL, xlab = "X", ylab = "Y")

y <- 2 * (x2 <- 10 + (x1 <- 1:10))
xyz.coords(y ~ x1 + x2, y = NULL, z = NULL)

xyz.coords(data.frame(x = -1:9, y = 2:12, z = 3:13), y = NULL, z = NULL,
           log = "xy")
##> Warning message: 2 x values <= 0 omitted ...

Run the code above in your browser using DataLab