xyz.coords {base} | R Documentation

## 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, z, xlab=NULL, ylab=NULL, zlab=NULL, log=NULL,
        recycle=FALSE)

### Arguments

`x, y, z` | the x, y and z coordinates of a set of points. Alternatively, a single argument `x` can be be provided. In this case, an attempt is made to interpret the argument 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 with three columns, the first is assumed to contain the x values, etc. Alternatively, two arguments `x` and `y` can be be provided. 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.

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

### Author(s)

Uwe Ligges and Martin Maechler

### See Also

`xy.coords` for 2D.

### Examples

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

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

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

    str(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 ...