Rev 9615 | Blame | Compare with Previous | Last modification | View Log | Download | RSS feed
\name{contour}\alias{contour}\title{Display Contours}\description{Create a contour plot, or add contour lines to an existing plot.}\usage{contour(x = seq(0, 1, len = nrow(z)), y = seq(0, 1, len = ncol(z)),z,nlevels = 10, levels = pretty(zlim, nlevels), labels = NULL,xlim = range(x, finite = TRUE),ylim = range(y, finite = TRUE),zlim = range(z, finite = TRUE),labcex = 0.6, drawlabels = TRUE, method = "flattest",vfont = c("sans serif", "plain"),col = par("fg"), lty = par("lty"), lwd = par("lwd"),add = FALSE, \dots)}\arguments{\item{x,y}{locations of grid lines at which the values in \code{z} aremeasured. These must be in ascending order. By default, equallyspaced values from 0 to 1 are used. If \code{x} is a \code{list},its components \code{x$x} and \code{x$y} are used for \code{x}and \code{y}, respectively. If the list has component \code{z} thisis used for \code{z}.}\item{z}{a matrix containing the values to be plotted (\code{NA}s areallowed). Note that \code{x} can be used instead of \code{z} forconvenience.}\item{nlevels}{number of contour levels desired \bold{iff}\code{levels} is not supplied.}\item{levels}{numeric vector of levels at which to draw contourlines.}\item{labels}{a vector giving the labels for the contour lines. If\code{NULL} then the levels are used as labels.}\item{labcex}{\code{cex} for contour labelling.}\item{drawlabels}{logical. Contours are labelled if \code{TRUE}.}\item{method}{character string specifying where the labels will belocated. Possible values are \code{"simple"}, \code{"edge"} and\code{"flattest"} (the default). See the Details section.}\item{vfont}{if a character vector of length 2 is specified, then Hersheyvector fonts are used for the contour labels.The first element of the vectorselects a typeface and the second element selects a fontindex(see \code{\link{text}} for more information).}\item{xlim, ylim, zlim}{x-, y- and z-limits for the plot.}\item{col}{color for the lines drawn.}\item{lty}{line type for the lines drawn.}\item{lwd}{line width for the lines drawn.}\item{add}{logical. If \code{TRUE}, add to a current plot.}\item{\dots}{additional graphical parameters (see \code{\link{par}})and the arguments to \code{\link{title}} may also be supplied.}}\details{There is currently no documentation about the algorithm.The source code is in \file{\$R\_HOME/src/main/plot3d.c}.The methods for positioning the labels on contours are \code{"simple"}(draw at the edge of the plot, overlaying the contour line),\code{"edge"} (draw at the edge of the plot, embedded in the contourline, with no labels overlapping) and \code{"flattest"}(draw on the flattest section of the contour, embedded in thecontour line, with no labels overlapping). The second and third maynot draw a label on every contour line.For information about vector fonts, see thehelp for \code{\link{text}} and \code{\link{Hershey}}.}\seealso{\code{\link{filled.contour}} for ``color-filled'' contours,\code{\link{image}} and the graphics demo which can be invoked as\code{demo(graphics)}.}\examples{x <- -6:16op <- par(mfrow = c(2, 2))contour(outer(x, x), method = "edge", vfont = c("sans serif", "plain"))z <- outer(x, sqrt(abs(x)), FUN = "/")## Should not be necessary:z[!is.finite(z)] <- NAimage(x, x, z)contour(x, x, z, col = "pink", add = TRUE, method = "edge",vfont = c("sans serif", "plain"))contour(x, x, z, ylim = c(1, 6), method = "simple", labcex = 1)contour(x, x, z, ylim = c(-6, 6), nlev = 20, lty = 2, method = "simple")par(op)## Persian Rug Art:x <- y <- seq(-4*pi, 4*pi, len = 27)r <- sqrt(outer(x^2, y^2, "+"))opar <- par(mfrow = c(2, 2), mar = rep(0, 4))for(f in pi^(0:3)) contour(cos(r^2)*exp(-r/f), drawlabels = FALSE)data("volcano")rx <- range(x <- 10*1:nrow(volcano))ry <- range(y <- 10*1:ncol(volcano))ry <- ry + c(-1,1) * (diff(rx) - diff(ry))/2tcol <- terrain.colors(12)par(opar); par(mfrow=c(1,1)); opar <- par(pty = "s", bg = "lightcyan")plot(x = 0, y = 0,type = "n", xlim = rx, ylim = ry, xlab = "", ylab = "")u <- par("usr")rect(u[1], u[3], u[2], u[4], col = tcol[8], border = "red")contour(x, y, volcano, col = tcol[2], lty = "solid", add = TRUE,vfont = c("sans serif", "plain"))title("A Topographic Map of Maunga Whau", font = 4)abline(h = 200*0:4, v = 200*0:4, col = "lightgray", lty = 2, lwd = 0.1)par(opar)}\keyword{hplot}\keyword{aplot}