2016-08-24 85 views
2

我真的很新的R,我想創建一個像我這裏添加的圖像,但我需要從0到1的顏色範圍,現在它自動設置,在圖像中是從0.2到0.6。 這裏是我的R代碼裏面,我用: Mat.csv是一個二維矩陣與值[0,1]設置顏色範圍在persp3d在R

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

回答

0

論證clim將解決你的問題。 (persp3Dplot3D程序包的功能,但persp3drgl程序包的功能。注意)colorRampPalette返回function,它插入一組給定顏色以創建新函數的參數顏色數。因此,您可以通過給出返回colorRampPalette返回的新function的輸出來設置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

+0

非常感謝你! 正是我想要它,並很好地解釋 – Fadi