Interactive 3D plot of a RasterLayer
Make an interactive 3D plot (map) of a RasterLayer. This is a wrapper around surface3d
in the rgl package. You can use decorate3d
to add axes.
## S4 method for signature 'RasterLayer' plot3D(x, maxpixels=1e5, zfac=1, drape=NULL, col=terrain.colors, at=100, rev=FALSE, useLegend=TRUE, adjust=TRUE, ...)
x |
a RasterLayer object |
maxpixels |
Maximum number of pixels to use |
zfac |
Numeric, to set the elevation scale relative to x and y |
drape |
RasterLayer, to 'drape' colors representing the values of
this layer on the 3D representation of layer |
col |
A color palette generating function such as |
at |
A numeric variable of breakpoints defining intervals along
the range of |
rev |
Logical. If |
useLegend |
Logical. If |
adjust |
Logical. If |
... |
Any argument that can be passed to
|
Previous versions opened a new device with each call of
plot3D
. This behaviour has been modified, and now a new device is
opened only if none is active. Thus, you should use rgl::open3d()
if you need to display a new scene without modifying the current one.
Robert J. Hijmans and Oscar Perpiñán
## Not run: ## rgl is needed to use plot3D library(rgl) data(volcano) r <- raster(volcano) extent(r) <- c(0, 610, 0, 870) ## level plot as reference levelplot(r, col.regions=terrain.colors) plot3D(r) ## Use different colors with a predefined function plot3D(r, col = rainbow) ## or with a custom function using colorRampPalette myPal <- colorRampPalette(RColorBrewer::brewer.pal(11, 'PuOr')) plot3D(r, col = myPal) ## With at you can define an homogeneus color table for different Rasters r2 <- r + 100 r3 <- r + 200 s <- stack(r, r2, r3) maxVal <- max(maxValue(s)) minVal <- min(minValue(s)) N <- 40 breaks <- seq(minVal, maxVal, length=N) plot3D(r, at=breaks) plot3D(r2, at=breaks) plot3D(r3, at=breaks) ## Default: x-axis and y-axis are adjusted with z-values. Therefore, ## labels with decorate3d() are useless plot3D(r, adjust=TRUE) decorate3d() ## Compare the graphic limits par3d('bbox') ## with the extent of the Raster extent(r) ## Set adjust=FALSE to fix it plot3D(r, adjust=FALSE) decorate3d() ## Once again, compare the graphic limits par3d('bbox') ## with the extent of the Raster extent(r) ## zfac controls the z values so z-axis will be distorted plot3D(r, adjust=FALSE, zfac=2) decorate3d() par3d('bbox') ## With drape you can disconnect the z-axis from the colors drape <- cut(r^4, 4) plot3D(r, drape=drape) ## Compare with: plot3D(r, at=4) ## End(Not run)
Please choose more modern alternatives, such as Google Chrome or Mozilla Firefox.