Rev 88598 | Blame | Compare with Previous | Last modification | View Log | Download | RSS feed
% File src/library/graphics/man/filled.contour.Rd% Part of the R package, https://www.R-project.org% Copyright 1995-2023 R Core Team% Distributed under GPL 2 or later\name{filled.contour}\alias{filled.contour}\alias{.filled.contour}\title{Level (Contour) Plots}\usage{filled.contour(x = seq(0, 1, length.out = nrow(z)),y = seq(0, 1, length.out = ncol(z)),z,xlim = range(x, finite = TRUE),ylim = range(y, finite = TRUE),zlim = range(z, finite = TRUE),levels = pretty(zlim, nlevels), nlevels = 20,color.palette = function(n) hcl.colors(n, "YlOrRd", rev = TRUE),col = color.palette(length(levels) - 1),plot.title, plot.axes, key.title, key.axes, key.border = NULL,asp = NA, xaxs = "i", yaxs = "i", las = 1,axes = TRUE, frame.plot = axes, \dots).filled.contour(x, y, z, levels, col)}\arguments{\item{x, y}{locations of grid lines at which the values in \code{z} aremeasured. These must be in ascending order. (The rest of thisdescription does not apply to \code{.filled.contour}.)By default, equally spaced values from 0 to 1 are used. If \code{x}is a \code{list}, its components \code{x$x} and \code{x$y} are usedfor \code{x} and \code{y}, respectively. If the list has component\code{z} this is used for \code{z}.}\item{z}{a numeric matrix containing the values to be plotted.. Note that\code{x} can be used instead of \code{z} for convenience.}\item{xlim}{x limits for the plot.}\item{ylim}{y limits for the plot.}\item{zlim}{z limits for the plot.}\item{levels}{a set of levels which are used to partition the rangeof \code{z}. Must be \bold{strictly} increasing (and finite). Areaswith \code{z} values between consecutive levels are painted with thesame color.}\item{nlevels}{if \code{levels} is not specified, the range of \code{z},values is divided into approximately this many levels.}\item{color.palette}{a color palette function to be used to assigncolors in the plot.}\item{col}{an explicit set of colors to be used in the plot.This argument overrides any palette function specification.\bold{\code{col} must have \code{length(levels) - 1} elements}: ifit does not, a warning is given and the colors will be recycled orignored when plotted, which can give misleading results (see\sQuote{Details}).}\item{plot.title}{statements which add titles to the main plot.}\item{plot.axes}{statements which draw axes (and a \code{\link{box}})on the main plot. This overrides the default axes.}\item{key.title}{statements which add titles for the plot key.}\item{key.axes}{statements which draw axes on the plot key.This overrides the default axis.}\item{key.border}{color for the border of the key \code{\link{rect}()}angles.}\item{asp}{the \eqn{y/x} aspect ratio, see \code{\link{plot.window}}.}\item{xaxs}{the x axis style. The default is to use internallabeling.}\item{yaxs}{the y axis style. The default is to use internallabeling.}\item{las}{the style of labeling to be used. The default is touse horizontal labeling.}\item{axes, frame.plot}{logicals indicating if axes and a box should bedrawn, as in \code{\link{plot.default}}.}\item{\dots}{additional \link{graphical parameters}, currently only passed to\code{\link{title}()}.}}\description{This function produces a contour plot with the areas between thecontours filled in solid color (Cleveland calls this a level plot). Akey showing how the colors map to z values is shown to the right ofthe plot.}\details{The values to be plotted can contain \code{NA}s. Rectangles with twoor more corner values are \code{NA} are omitted entirely: where thereis a single \code{NA} value the triangle opposite the \code{NA} isomitted.Values to be plotted can be infinite: the effect is similar to thatdescribed for \code{NA} values.If \code{levels} is not specified explicitly, it is computed as\code{pretty(zlim, nlevels)}. \code{\link{pretty}} chooses a\dQuote{nice} set of levels and the number of levels it returns candiffer from \code{nlevels}: hence \code{length(levels) - 1}, thenumber of colors \code{col} should have, is not always equal to\code{nlevels - 1} or to \code{nlevels}. If you supply \code{col}explicitly, it is safest to first determine \code{levels} (either bycomputing \code{pretty(zlim, nlevels)} yourself, or by passing\code{levels} explicitly) and then set\code{col} to have \code{length(levels) - 1} elements, rather thanguessing the count from \code{nlevels}.\code{.filled.contour} is a \sQuote{bare bones} interface to addjust the contour plot to an already-set-up plot region. It is isintended for programmatic use, and the programmer isresponsible for checking the conditions on the arguments.}\references{\bibshow{R:Cleveland:1993}}\author{Ross Ihaka and R Core Team}\note{\code{filled.contour} uses the \code{\link{layout}} function and so isrestricted to a full page display.The output produced by \code{filled.contour} is actually a combinationof two plots; one is the filled contour and one is the legend. Twoseparate coordinate systems are set up for these two plots, but theyare only used internally -- once the function has returned thesecoordinate systems are lost. If you want to annotate the main contourplot, for example to add points, you can specify graphics commands inthe \code{plot.axes} argument. See the examples.}\seealso{\code{\link{contour}}, \code{\link{image}},\code{\link{hcl.colors}}, \code{\link{gray.colors}},\code{\link{palette}}; \code{\link[lattice]{contourplot}}and \code{\link[lattice]{levelplot}} from package \CRANpkg{lattice}.}\examples{require("grDevices") # for coloursfilled.contour(volcano, asp = 1) # simplex <- 10*1:nrow(volcano)y <- 10*1:ncol(volcano)filled.contour(x, y, volcano,color.palette = function(n) hcl.colors(n, "terrain"),plot.title = title(main = "The Topography of Maunga Whau",xlab = "Meters North", ylab = "Meters West"),plot.axes = { axis(1, seq(100, 800, by = 100))axis(2, seq(100, 600, by = 100)) },key.title = title(main = "Height\n(meters)"),key.axes = axis(4, seq(90, 190, by = 10))) # maybe also asp = 1mtext(paste("filled.contour(.) from", R.version.string),side = 1, line = 4, adj = 1, cex = .66)# Annotating a filled contour plota <- expand.grid(1:20, 1:20)b <- matrix(a[,1] + a[,2], 20)filled.contour(x = 1:20, y = 1:20, z = b,plot.axes = { axis(1); axis(2); points(10, 10) })## Persian Rug Art:x <- y <- seq(-4*pi, 4*pi, length.out = 27)r <- sqrt(outer(x^2, y^2, `+`))## "minimal"filled.contour(cos(r^2)*exp(-r/(2*pi)), axes = FALSE, key.border=NA)## rather, the key *should* be labeled (but axes still not):filled.contour(cos(r^2)*exp(-r/(2*pi)), frame.plot = FALSE,plot.axes = {})}\keyword{hplot}\keyword{aplot}