使用 plot3D 在 R 中的 persp3d() 中设置颜色范围
Setting color range in persp3d() in R with plot3D
我是 R 的新手,我想创建一个像我在此处添加的图像一样的图像,但我需要颜色范围从 0 到 1,现在它是自动设置的,在图像中它是从 0.2 到 0.6。
这是我使用的 R 代码。 Mat.csv 是一个二维矩阵,其值在 [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()
示例图:
参数clim
将解决您的问题。 (persp3D
是 plot3D
包的函数,但 persp3d
是 rgl
包的函数。小心。) colorRampPalette
returns function
插入一组给定的颜色以创建新函数的参数颜色数。所以你可以通过给新的 function
that colorRampPalette
returns 的输出来设置 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
我是 R 的新手,我想创建一个像我在此处添加的图像一样的图像,但我需要颜色范围从 0 到 1,现在它是自动设置的,在图像中它是从 0.2 到 0.6。
这是我使用的 R 代码。 Mat.csv 是一个二维矩阵,其值在 [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()
示例图:
参数clim
将解决您的问题。 (persp3D
是 plot3D
包的函数,但 persp3d
是 rgl
包的函数。小心。) colorRampPalette
returns function
插入一组给定的颜色以创建新函数的参数颜色数。所以你可以通过给新的 function
that colorRampPalette
returns 的输出来设置 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