spersp | R Documentation |
spersp
(generic function) draws a perspective plot of a surface over
the x-y
plane with the facets being filled with different colors
and (optionally) adds a legend strip with the color scale
(calls splot
and persp
).
spersp(x, ...)
## Default S3 method:
spersp(
x = seq(0, 1, len = nrow(z)),
y = seq(0, 1, len = ncol(z)),
z,
s = z,
slim = range(s, finite = TRUE),
col = jet.colors(128),
breaks = NULL,
legend = TRUE,
horizontal = FALSE,
legend.shrink = 0.8,
legend.width = 1.2,
legend.mar = ifelse(horizontal, 3.1, 5.1),
legend.lab = NULL,
bigplot = NULL,
smallplot = NULL,
lab.breaks = NULL,
axis.args = NULL,
legend.args = NULL,
reset = TRUE,
xlab = NULL,
ylab = NULL,
zlab = NULL,
theta = 40,
phi = 20,
ticktype = "detailed",
cex.axis = 0.75,
...
)
## S3 method for class 'data.grid'
spersp(
x,
data.ind = 1,
s = x[[data.ind]],
xlab = NULL,
ylab = NULL,
zlab = NULL,
...
)
x |
grid values for |
... |
additional graphical parameters (to be passed to |
y |
grid values for |
z |
matrix containing the values to be plotted (NAs are allowed).
Note that |
s |
matrix containing the values used for coloring the facets. |
slim |
limits used to set up the color scale. |
col |
color table used to set up the color scale (see |
breaks |
(optional) numeric vector with the breakpoints for the color scale:
must have one more breakpoint than |
legend |
logical; if |
horizontal |
logical; if |
legend.shrink |
amount to shrink the size of legend relative to the full height or width of the plot. |
legend.width |
width in characters of the legend strip. Default is 1.2, a little bigger that the width of a character. |
legend.mar |
width in characters of legend margin that has the axis. Default is 5.1 for a vertical legend and 3.1 for a horizontal legend. |
legend.lab |
label for the axis of the color legend. Default is no label as this is usual evident from the plot title. |
bigplot |
plot coordinates for main plot. If not passed these will be determined within the function. |
smallplot |
plot coordinates for legend strip. If not passed these will be determined within the function. |
lab.breaks |
if breaks are supplied these are text string labels to put at each break value. This is intended to label axis on a transformed scale such as logs. |
axis.args |
additional arguments for the axis function used to create
the legend axis (see |
legend.args |
arguments for a complete specification of the legend
label. This is in the form of list and is just passed to the |
reset |
logical; if |
xlab |
label for the x axis, defaults to a description of |
ylab |
label for the y axis, defaults to a description of |
zlab |
label for the z axis, defaults to a description of |
theta |
x-y rotation angle for perspective (azimuthal direction). |
phi |
z-angle for perspective (colatitude). |
ticktype |
character; |
cex.axis |
magnification to be used for axis annotation (relative to the
current setting of |
data.ind |
integer (or character) with the index (or name) of the component
containing the |
Invisibly returns a list with the following 4 components:
pm |
the viewing transformation matrix (see |
bigplot |
plot coordinates of the main plot. These values may be useful for drawing a plot without the legend that is the same size as the plots with legends. |
smallplot |
plot coordinates of the secondary plot (legend strip). |
old.par |
previous graphical parameters ( |
After exiting, the plotting region may be changed
(par("plt")
) to make it possible to add more features to the plot
(set reset = FALSE
to avoid this).
Based on image.plot
function from package fields:
fields, Tools for spatial data.
Copyright 2004-2013, Institute for Mathematics Applied Geosciences.
University Corporation for Atmospheric Research.
Modified by Ruben Fernandez-Casal <rubenfcasal@gmail.com>.
splot
, spoints
, simage
,
image
, image.plot
, data.grid
,
persp
.
# Regularly spaced 2D data
nx <- c(40, 40) # ndata = prod(nx)
x1 <- seq(-1, 1, length.out = nx[1])
x2 <- seq(-1, 1, length.out = nx[2])
trend <- outer(x1, x2, function(x,y) x^2 - y^2)
spersp( x1, x2, trend, main = 'Trend', zlab = 'y')
# Multiple plots
set.seed(1)
y <- trend + rnorm(prod(nx), 0, 0.1)
x <- as.matrix(expand.grid(x1 = x1, x2 = x2)) # two-dimensional grid
# local polynomial kernel regression
lp <- locpol(x, y, nbin = nx, h = diag(c(0.3, 0.3)))
# 1x2 plot
old.par <- par(mfrow = c(1,2))
spersp( x1, x2, y, main = 'Data', reset = FALSE)
spersp(lp, main = 'Estimated trend', zlab = 'y', reset = FALSE)
par(old.par)
Add the following code to your website.
For more information on customizing the embed code, read Embedding Snippets.