在R中反转persp3D绘图中的颜色

在R中反转persp3D绘图中的颜色,r,plot,R,Plot,我正在使用R中GA软件包中的persp3D()函数,并且我无法反转颜色。目前,使用heat.colors可以使颜色在其较低的位置为红色,而在表面较高的位置为白色/黄色。我想要这个的反面。原因是当我使用image()函数时,颜色就是这样出来的(即红色低,黄色高)。这里有一个例子 library(GA) y <- x <- seq(-10, 10, length=60) f <- function(x,y) { r <- sqrt(x^2+y^2); 10 * sin(r)

我正在使用
R
GA
软件包中的
persp3D()
函数,并且我无法反转颜色。目前,使用
heat.colors
可以使颜色在其较低的位置为红色,而在表面较高的位置为白色/黄色。我想要这个的反面。原因是当我使用
image()
函数时,颜色就是这样出来的(即红色低,黄色高)。这里有一个例子

library(GA)

y <- x <- seq(-10, 10, length=60)
f <- function(x,y) { r <- sqrt(x^2+y^2); 10 * sin(r)/r }
z <- outer(x, y, f)

image(x, y, z)

persp3D(x, y, z, col.palette = heat.colors, phi = 30, theta = 225,
        box = TRUE, border = NA, shade = .4)
库(GA)

y您会发现
heat.colors
是一个具有参数
rev
的函数

args(heat.colors)
function (n, alpha, rev = FALSE) 
NULL
更改默认值的一个简单方法是定义自己的
热.colors
。我们可以花费大量精力查看
persp3D
的源代码,并确切了解如何调用
heat.colors
,或者我们可以使用
传递任何其他参数。我更喜欢懒惰的方式:

my.heat.colors <- function(...) heat.colors(..., rev=TRUE)

persp3D(x, y, z, col.palette = my.heat.colors, phi = 30, theta = 225,
        box = TRUE, border = NA, shade = .4)