Become an expert in R — Interactive courses, Cheat Sheets, certificates and more!
Get Started for Free

image3d

Draw Points on a 3D Grid


Description

Plots points on a three dimensional grid representing values in a three dimensional array. Assumes high values are inside and uses alpha blending to make outside points more transparent.

Usage

image3d(v, x = 1:dim(v)[1], y = 1:dim(v)[2], z = 1:dim(v)[3],
          vlim = quantile(v, c(.9, 1),na.rm=TRUE),
          col = heat.colors(256), alpha.power = 2,
          alpha = ((1:length(col))/ length(col))^alpha.power,
          breaks, sprites = TRUE, jitter = FALSE, 
          radius = min(diff(x), diff(y), diff(z)),
          add = FALSE,...)

Arguments

v

three dimensional data array.

x,y,z

locations of grid planes at which values in v are measured.

vlim

minimum and maximum v values for which points are to be drawn.

col

vector of colors for the points as generated by heat.colors or similar functions.

alpha.power

used to calculate the alpha values. The larger the power, the smaller the alpha, the more transparent the point. Only used if alpha is not supplied.

alpha

vector of alpha values between 0 and 1. The length of the vector should be equal to the length of col.

breaks

breakpoints for the colors; must give one more breakpoint than colors.

sprites

logical; if TRUE, use sprites3d to draw the points.

radius

radius used in sprites3d.

jitter

logical; if TRUE, add a small amount of noise to the point locations.

add

logical; if TRUE, add to current rgl graph.

...

material and texture properties. See rgl.material for details.

References

Daniel Adler, Oleg Nenadic and Walter Zucchini (2003) RGL: A R-library for 3D visualization with OpenGL

See Also

Examples

# view density of mixture of tri-variate normals
    nmix3 <- function(x, y, z, m, s) {
      0.4 * dnorm(x, m, s) * dnorm(y, m, s) * dnorm(z, m, s) +
        0.3 * dnorm(x, -m, s) * dnorm(y, -m, s) * dnorm(z, -m, s) +
          0.3 * dnorm(x, m, s) * dnorm(y, -1.5 * m, s) * dnorm(z, m, s)
    }
    f <- function(x,y,z) nmix3(x,y,z,.5,.5)
    x<-seq(-2,2,len=50)
    g <- expand.grid(x = x, y = x, z = x)
    v <- array(f(g$x, g$y, g$z), c(length(x), length(x), length(x)))
    image3d(v)
    image3d(v, jitter = TRUE)

misc3d

Miscellaneous 3D Plots

v0.9-0
GPL
Authors
Dai Feng and Luke Tierney
Initial release

We don't support your browser anymore

Please choose more modern alternatives, such as Google Chrome or Mozilla Firefox.