cloud(formula,
data,
aspect = c(1, 1),
scales = list(cex = 0.5, lty = 1, lwd = 1,
col = "black", distance = rep(1, 3),
arrows = TRUE, draw = TRUE),
zlab,
zlim = range(z),
distance = 0.2,
par.box,
perspective = TRUE,
R.mat = diag(4),
screen = list(z = 40, x = -60),
zoom = .9,
...)
wireframe(formula, data,
at = pretty(z, cuts),
col.regions,
drape = FALSE,
pretty = FALSE,
colorkey = any(drape),
cuts = 70,
distance = 0.2,
par.box,
screen = list(z = 40, x = -60),
zoom = .9,
scales = list(cex = 0.5, distance = rep(1, 3), arrows = TRUE),
...)
z ~ x * y | g1 * g2 * ...
,
where z
is a numeric response, and x, y
are numeric
values.
g1,g2,...
, if present, must be either factors or shingles.
In the caarrows=TRUE
, otherwise tick marks with
labels are drawn. Both can be suppressed by draw=FALSE
.
Several other components that work in the usual box.3d
levelplot
. if drape=TRUE
, at
gives the
vector of values where the colors changedrape=TRUE
levelplot
for detailscloud
draws a 3d Scatter Plot, while wireframe
draws a
wireframe 3d surface evaluated on a grid. Multiple surfaces can be
drawn by wireframe
using the groups
argument. Specifying
groups
with cloud
results in a
panel.superpose
-like effect (via panel.3dscatter
). Wireframe can optionally render the surface as being illuminated by a
light source (no shadows though). Details can be found in the help
page for panel.cloud
. Note that although arguments
controlling these are actually arguments for the panel function, they
can be supplied to cloud
and wireframe
directly.
wireframe
can be extremely slow in rendering; this should
improve sometime in the future. (For some reason, postscript output is
much faster than most other devices.)
The algorithm for identifying which edges of the bounding box should be drawn before the points are plotted fails in some cases.
This and all other high level Trellis functions have several
arguments in common. These are extensively documented only in the
help page for xyplot
, which should be consulted to learn more
detailed usage.
xyplot
, levelplot
,
panel.cloud
,
Lattice
x <- seq(-pi, pi, len = 20)
y <- seq(-pi, pi, len = 20)
g <- expand.grid(x = x, y = y)
g$z <- sin(sqrt(g$x^2 + g$y^2))
wireframe(z ~ x * y, g, drape = TRUE,
perspective = FALSE,
aspect = c(3,1), colorkey = FALSE)
g <- expand.grid(x = 1:10, y = 5:15, gr = 1:2)
g$z <- log((g$x^g$g + g$y^2) * g$gr)
wireframe(z ~ x * y, data = g, groups = gr,
scales = list(arrows = FALSE),
shade = TRUE,
shade.colors = function(cosangle, height)
palette.shade(cosangle, height = .15, saturation = .05),
light.source = c(0, 0, 1),
screen = list(z = 30, x = -60))
data(iris)
cloud(Sepal.Length ~ Petal.Length * Petal.Width, data = iris,
groups = Species, screen = list(x = -90, y = 70),
aspect = c(1, 1), distance = .4, zoom = .6,
key = list(title = "Iris Data", x = .1, y=.9,
corner = c(0,1),
border = TRUE,
points = Rows(trellis.par.get("superpose.symbol"), 1:3),
text = list(levels(iris$Species))))
ocol <- trellis.par.get("axis.line")$col
oclip <- trellis.par.get("clip")$panel
lset(list(axis.line = list(col = "transparent"), clip = list(panel = FALSE)))
print(cloud(Sepal.Length ~ Petal.Length * Petal.Width,
data = iris, cex = .8,
groups = Species,
subpanel = panel.superpose,
main = "Stereo",
screen = list(z = 20, x = -70, y = 3)),
split = c(1,1,2,1), more = TRUE)
print(cloud(Sepal.Length ~ Petal.Length * Petal.Width,
data = iris, cex = .8,
groups = Species,
subpanel = panel.superpose,
main = "Stereo",
screen = list(z = 20, x = -70, y = 0)),
split = c(2,1,2,1))
lset(list(axis.line = list(col = ocol), clip = list(panel = oclip)))
Run the code above in your browser using DataLab