在R中的persp3d中设置颜色范围

时间:2016-08-24 11:43:06

标签: r plot colors

我是R的新手,我想创建一个像我在这里添加的图像,但我需要将颜色范围从0到1,现在它自动设置,图像从0.2到0.6。 这是我使用的R代码: Mat.csv是一个2D矩阵,其值为[0,1]

library(plot3D)
mydata <- read.csv("D:/output/Mat.csv")
mydata <- as.matrix(mydata)
pdf("D:/output/surfaceplot.pdf")
mycols <- colorRampPalette( c("#ff0000", "#00ff00") ) 
persp3D(z = mydata, theta = 120, zlim=c(0,1))
dev.off()

Example Graph

1 个答案:

答案 0 :(得分:0)

参数clim将解决您的问题。 (persp3Dplot3D包的功能,但persp3drgl包的功能。请注意。)colorRampPalette返回内插的function一组给定的颜色来创建新函数的参数颜色数。因此,您可以通过提供function返回的新colorRampPalette的输出来设置persp3D的颜色向量。例如,persp3D(..., col = mycols(256))mycolv <- mycols(256); persp3D(..., col = mycolv)

library(plot3D)

## example data
x <- seq(-pi, pi, by = 0.1)
y <- seq(-pi, pi, by = 0.1)
mydata <- outer(x, y, function(x, y) cos(x) * sin(y))
range(mydata)   # about -1 ~ 1

## colour function
mycols <- colorRampPalette(c("blue", "red", "green", "yellow"))

## draw
persp3D(z = mydata, ticktype = "detailed", col = mycols(256))                  # left
persp3D(z = mydata, ticktype = "detailed", col = mycols(256), clim=c(-2, 2))   # right

enter image description here