fields (version 11.6)

quilt.plot: Image plot for irregular spatial data.

Description

Given a vector of z values associated with 2-d locations this function produces an image-like plot where the locations are discretized to a grid and the z values are coded as a color level from a color scale.

Usage

quilt.plot(x, y, z, nx = 64, ny = 64,  grid = NULL, 
           add.legend=TRUE,add=FALSE, nlevel=64, 
           col = tim.colors(nlevel),
           nrow=NULL, ncol=NULL,FUN =
                 NULL, plot=TRUE, na.rm=FALSE, ...)

Arguments

x

A vector of the x coordinates of the locations -or- a a 2 column matrix of the x-y coordinates.

y

A vector of the y coordinates -or- if the locations are passed in x the z vector

z

Values of the variable to be plotted.

nlevel

Number of color levels.

nx

Number of grid boxes in x if a grid is not specified.

ny

Number of grid boxes in y.

nrow

Depreciated, same as nx.

ncol

Depreciated same as ny.

grid

A grid in the form of a grid list.

add.legend

If TRUE a legend color strip is added

add

If FALSE add to existing plot.

col

Color scale for the image, the default is tim.colors -- a pleasing spectrum.

plot

If FALSE just returns the image object instead of plotting it.

FUN

The function to apply to values that are common to a grid box. The default is to find the mean. (see as.image).

na.rm

If FALSE NAs are not removed from zand so a grid box even one of these values may be an NA. (See details below.)

arguments to be passed to the image.plot function

Details

This function combines the discretization to an image by the function as.image and is then graphed by image.plot. By default, locations that fall into the same grid box will have their z values averaged. This also means that observations that are NA will result in the grid box average also being NA and can produce unexpected results because the NA patterns can dominate the figure. If you are unsure of the effect try na.rm = TRUE for a comparison.

A similar function exists in the lattice package and produces good looking plots. The advantage of this fields version is that it uses the standard R graphics functions and is written in R code. Also, the aggregation to average values for z values in the same grid box allows for different choices of grids. If two locations are very close, separating them could result in very small boxes.

As always, legend placement is never completely automatic. Place the legend independently for more control, perhaps using image.plot in tandem with split.screen or enlarging the plot margin See help(image.plot) for examples of this function and these strategies.

See Also

as.image, image.plot, lattice, persp, drape.plot

Examples

Run this code
# NOT RUN {
data( ozone2)
# plot 16 day of ozone data set

quilt.plot( ozone2$lon.lat, ozone2$y[16,])
US( add=TRUE, col="grey", lwd=2)

#
# and ... if you are fussy 
# do it again 
# quilt.plot( ozone2$lon.lat, ozone2$y[16,],add=TRUE)
# to draw over the state boundaries. 
#

### adding a common legend strip "by hand"
## and a custom color table

coltab<- two.colors( 256, middle="grey50" )

par( oma=c( 0,0,0,5)) # save some room for the legend
set.panel(2,2)
zr<- range( ozone2$y, na.rm=TRUE)

for( k in 1:4){
quilt.plot( ozone2$lon.lat, ozone2$y[15+k,], add.legend=FALSE,
 zlim=zr, col=coltab, nx=40, ny=40)
US( add=TRUE)
}
par( oma=c(0,0,0,1))
image.plot(zlim=zr,legend.only=TRUE, col=coltab)
# may have to adjust number of spaces in oma to make this work.
  
# }

Run the code above in your browser using DataCamp Workspace