On Tue, May 5, 2009 at 4:07 AM, Anton Bossenbroek <anton.bossenbr...@me.com> wrote: > Hi, > > I want to draw a figure similar to > http://dsarkar.fhcrc.org/lattice/book/images/Figure_13_07_stdBW.pngĀ from > http://lmdvr.r-forge.r-project.org/figures/figures.html (figure 13.7) . > However instead of using a contour plot as a panel for the wireframe I want > to use a levelplot. Can somebody help me with this?
It's difficult to use the same idea, as rectangles (defined by center and width/height) become more complicated polygons in 3-D. A simple approximation is to plot a second surface with drape=TRUE (which produces a levelplot-like color scheme), making the vertical span of the surface small enough to make it look flat. For example, panel.3d.levelplot <- function(x, y, z, rot.mat, distance, zlim.scaled, at, drape = TRUE, shade = FALSE, ...) { panel.3dwire(x, y, z, rot.mat = rot.mat, distance = distance, zlim.scaled = zlim.scaled, at = at, drape = FALSE, shade = shade, ...) zrng <- 0.001 * diff(zlim.scaled) ## vertical range of 2nd surface (>0) z.scaled <- (z - min(z))/diff(range(z)) at.scaled <- (at - min(z))/diff(range(z)) new.z <- zlim.scaled[2] + zrng * (z.scaled-1) new.at <- zlim.scaled[2] + zrng * (at.scaled-1) panel.3dwire(x, y, new.z, at = new.at, col = "transparent", rot.mat = rot.mat, distance = distance, shade = FALSE, drape = TRUE, zlim.scaled = zlim.scaled, alpha = 0.8, ...) } wireframe(volcano, zlim = c(90, 250), nlevels = 10, aspect = c(61/87, .3), panel.aspect = 0.6, panel.3d.wireframe = panel.3d.levelplot, at = pretty(volcano, 10), shade = TRUE, col.regions = terrain.colors(100), screen = list(z = 20, x = -60)) -Deepayan ______________________________________________ R-help@r-project.org mailing list https://stat.ethz.ch/mailman/listinfo/r-help PLEASE do read the posting guide http://www.R-project.org/posting-guide.html and provide commented, minimal, self-contained, reproducible code.