【问题标题】:Setting color range in persp3d() in R with plot3D使用 plot3D 在 R 中的 persp3d() 中设置颜色范围
【发布时间】:2016-12-31 12:49:52
【问题描述】:

我真的是 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()

示例图:

【问题讨论】:

    标签: r colors plot3d


    【解决方案1】:

    参数clim 将解决您的问题。 (persp3Dplot3D 包的函数,但 persp3drgl 包的函数。小心。)colorRampPalette 返回 function,它插入一组给定颜色以创建新函数的参数颜色数.因此,您可以通过提供 colorRampPalette 返回的新 function 的输出来设置 persp3D 的颜色向量。例如,persp3D(..., col = mycols(256))mycolv &lt;- 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
    

    【讨论】:

    • 非常感谢!正是我想要的,并且很好地解释了
    猜你喜欢
    • 2016-07-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-03-23
    • 1970-01-01
    相关资源
    最近更新 更多