contourLines {grDevices} R Documentation

## Calculate Contour Lines

### Description

Calculate contour lines for a given set of data.

### Usage

```contourLines(x = seq(0, 1, length.out = nrow(z)),
y = seq(0, 1, length.out = ncol(z)),
z, nlevels = 10,
levels = pretty(range(z, na.rm = TRUE), nlevels))
```

### Arguments

 `x, y` locations of grid lines at which the values in `z` are measured. These must be in ascending order. By default, equally spaced values from 0 to 1 are used. If `x` is a `list`, its components `x\$x` and `x\$y` are used for `x` and `y`, respectively. If the list has component `z` this is used for `z`. `z` a matrix containing the values to be plotted (`NA`s are allowed). Note that `x` can be used instead of `z` for convenience. `nlevels` number of contour levels desired iff `levels` is not supplied. `levels` numeric vector of levels at which to draw contour lines.

### Details

`contourLines` draws nothing, but returns a set of contour lines.

There is currently no documentation about the algorithm. The source code is in ‘R_HOME/src/main/plot3d.c’.

### Value

A `list` of contours, each itself a `list` with elements:

 `level ` The contour level. `x ` The x-coordinates of the contour. `y ` The y-coordinates of the contour.

`options("max.contour.segments")` for the maximal complexity of a single contour line.

`contour`: Its ‘Examples’ demonstrate how `contourLines()` can be drawn and are the same (as those from `contour()`).

### Examples

```x <- 10*1:nrow(volcano)
y <- 10*1:ncol(volcano)
cl <- contourLines(x, y, volcano)
## summarize the sizes of each the contour lines :
cbind(lev = vapply(cl, `[[`, .5, "level"),
n  = vapply(cl, function(l) length(l\$x), 1))

z <- outer(-9:25, -9:25)
pretty(range(z), 10) # -300 -200 ... 600 700
utils::str(c2 <- contourLines(z))
# no segments for {-300, 700};
#  2 segments for {-200, -100, 0}
#  1 segment  for  100:600
```

[Package grDevices version 4.1.1 Index]