quilt.plot {fields} | R Documentation |
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.
quilt.plot(x, y, z, nrow = 64, ncol = 64, grid = NULL, add.legend=TRUE,...)
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. |
nrow |
Number of grid boxes in x. |
ncol |
Number of grid boxes in y. |
grid |
A grid in the form of a grid list . |
add.legend |
|
... |
arguments to be passed to the image.plot function |
This function combines the discretization to an image by the function
as.image
and is then graphed by image.plot
.
Locations that fall into the same grid box will have their z values
averaged.
A similar function exists in the lattice package. 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 gird box allows for different choices of grids. If two locations are very close, separating them could results 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.
D.Nychka
as.image, image.plot, lattice, persp, drape.plot
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 legend strip "by hand" par( mar=c( 5,5,5,10)) # save some room for the legend quilt.plot( ozone2$lon.lat, ozone2$y[16,], add.legend=FALSE) image.plot(ozone2$lon.lat, ozone2$y[16,],legend.only=TRUE)