image3d: Draw Points on a 3D Grid

Description Usage Arguments References See Also Examples

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

1
2
3
4
5
6
7
  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

image, sprites3d, points3d, jitter.

Examples

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
    # 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)

Example output

Warning message:
no DISPLAY variable so Tk is not available 

misc3d documentation built on Oct. 8, 2021, 1:06 a.m.

Related to image3d in misc3d...