在r的五颜六色的3D Diagramm

时间:2014-05-15 12:13:31

标签: r

我正在使用persp生成3D图表。

persp(MatrixY,ltheta = 120 ,theta = 30, phi = 30, expand = 0.19,,scale=FALSE,shade=0.4,border=NA,box=FALSE)

MatrixY有128行和416列,数据介于-1和+1之间。我想像这样给这个图着色:

如果值V介于0.5和1之间,则该线应为红色, 如果值V介于0和0.5之间,则为蓝色, 如果值V介于-1和0之间,则为绿色

我该怎么做这个工作?

1 个答案:

答案 0 :(得分:2)

请注意persp生成(nrows-1)*(ncols-1)个单元格的图,因此每个彩色单元格的值代表4个周围数据点的平均值(请参阅答案here)。 image()可能会给出更好的结果,矩阵中的每个值都有一个单元格。

# generate a matrix
z = matrix(runif(n=100, min=-1, max=1),nrow=10,ncol=10)
nr <- nrow(z)
nc <- ncol(z)

# Calculate value at center of each cell ()
zfacet <- (z[-1, -1] + z[-1, -nc] + z[-nr, -1] + z[-nr, -nc])/4

# Generate the desired colors
cols = c('blue','green','red')

# Cut matrix values into 3 bins by manual breaks
zbinned <- cut(zfacet, breaks=c(-1,0,0.5,1))

# Plot perspective with colored cells
persp(z, ltheta = 120 ,theta = 30, phi = 30, expand = 0.19, asp=1, scale=T,shade=0.4, border=T, box=F, col=cols[zbinned])

有你的彩色三维情节:

enter image description here