DATA MINING
Desktop Survival Guide by Graham Williams |
|||||
# Suggested by Robin Hankin pdf("graphics/rplot-3dbox.pdf") points3d <- function(x, y, z, jj.colour="black", ...) { if(is.matrix(x)) { z <- x[,3] y <- x[,2] x <- x[,1] } z.grid <- matrix(range(z), 2, 2) persp(range(x), range(y), z.grid, col=NA, border=NA, ...) -> res trans3d <- function(x,y,z, pmat) { tr <- cbind(x,y,z,1) %*% pmat list(x = tr[,1]/tr[,4], y= tr[,2]/tr[,4]) } points(trans3d(x,y,z,pm=res), col=jj.colour, ...) } O <- matrix(rnorm(60), 20, 3) options(warn=-1) # Ignore two warnings from the following. points3d(O, jj.colour="red", pch=16, theta=30, phi=40) dev.off() |