Learn R Programming

raster (version 2.0-05)

plot: Plot a Raster* object

Description

Plot (that is, make a map of) the values of a Raster* object, or make a scatterplot of their values. Points, lines, and polygons can be drawn on top of a map using plot(..., add=TRUE), or with functions like points, lines, polygons See the rasterVis package for more advanced (trellis/lattice) plotting of Raster* objects.

Usage

## S3 method for class 'Raster,ANY':
plot(x, y, col=rev(terrain.colors(255)), maxpixels=500000, alpha=1, colNA=NA, add=FALSE, ext=NULL, useRaster=TRUE, interpolate=FALSE, addfun=NULL, nc, nr, ...)


## S3 method for class 'Raster,Raster':
plot(x, y, maxpixels=100000, cex=0.1, ...)

Arguments

x
Raster* object
y
If x is a RasterStack or RasterBrick: integer, character (layer name(s)), or missing to select which layer(s) to plot. If missing, all RasterLayers in the RasterStack will be plotted (up to a maximum of 16). Or another Raster* object of the s
col
A color palette, i.e. a vector of n contiguous colors such as rainbow, heat.colors, topo.colors,
maxpixels
Maximum number of pixels used
useRaster
If TRUE, the rasterImage function is used for plotting. Otherwise the image function is used. This can be useful if rasterImage does not work well on your system (see note)
alpha
Number between 0 and 1 to set transparancy. 0 is entirely transparant, 1 is not transparant
colNA
The color to use for the backgournd (default is transparant)
add
Logical. Add to current plot?
ext
An extent object to zoom in a region (see also zoom and crop(x, drawExtent())
interpolate
Logical. Should the image be interpolated (smoothed)?
addfun
Function to add additional items such as points or polygons to the plot (map). Typically containing statements like "points(xy); plot(polygons, add=TRUE)". This is particularly useful to add something to each map when plotting a multi-layer Raste
...
Graphical parameters. Any argument that can be passed to image.plot and to plot, such as axes=FALSE, main='title', ylab='latitude'
nc
Optional. The number of columns to divide the plotting device in (when plotting mulitple layers in a RasteLayer or RasterBrick object)
nr
Optional. The number of rows to divide the plotting device in (when plotting mulitple layers in a RasteLayer or RasterBrick object)
cex
Symbol size for scatter plots

Details

Most of the code for this function was taken from image.plot (fields package). Raster objects with a color-table (e.g. a graphics file) are plotted according to the color table.

See Also

spplot and the rasterVis package have lattice based methods for plotting Raster* objects. red-green-blue plots (e.g. false color composits) can be made with plotRGB text, persp, contour, pairs, hist

Examples

Run this code
# RasterLayer
r <- raster(nrows=10, ncols=10)
r <- setValues(r, 1:ncell(r))
plot(r)

e <- extent(r)
plot(e, add=TRUE, col='red', lwd=4)
e <- e / 2
plot(e, add=TRUE, col='red')


# Scatterplot of 2 RasterLayers
r2 <- sqrt(r)
plot(r, r2)

# Multi-layer object (RasterStack / Brick)
s <- stack(r, r2, r/r)
plot(s, 2)
plot(s)

# two objects, different range, one scale:
r[] <- runif(ncell(r))
r2 <- r/2
brks <- seq(0, 1, by=0.1) 
nb <- length(brks)-1 
par(mfrow=c(1,2))
plot(r, breaks=brks, col=rev(terrain.colors(nb)), lab.breaks=brks, zlim=c(0,1)) 
plot(r2, breaks=brks, col=rev(terrain.colors(nb)), lab.breaks=brks, zlim=c(0,1)) 


# breaks and labels
x <- raster(nc=10, nr=10)
x[] <- runif(ncell(x))
brk <- c(0, 0.25, 0.75, 1)
arg <- list(at=c(0.12,0.5,0.87), labels=c("Low","Med.","High"))
plot(x, col=terrain.colors(3), breaks=brk)
plot(x, col=terrain.colors(3), breaks=brk, axis.args=arg)
par(mfrow=c(1,1))

# color ramp
plot(x, col=colorRampPalette(c("red", "white", "blue"))(255))

# adding random points to the map
xy <- cbind(-180 + runif(10) * 360, -90 + runif(10) * 180)
points(xy, pch=3, cex=5)

# for SpatialPolygons do
# plot(pols, add=TRUE)

# adding the same points to each map of each layer of a RasterStack
fun <- function() {
	points(xy, cex=2)
	points(xy, pch=3, col='red')
}
plot(s, addfun=fun)

Run the code above in your browser using DataLab