如果之前已经回答过这个问题我很抱歉,但是通过搜索网站找不到这个问题的答案。基本上我想要做的是,在R
中,将image()
绘图覆盖在persp()
绘图之上,这样基本上你会得到的是带有热量的3D绘图它上面的地图对应另一个功能。我在下面的函数中有一些示例代码:
x1 = seq(0,1,.01)
x2 = seq(0,1,.01)
f = function(x1,x2){
ans = x1 + x2
return(ans)
}
h = function(x1,x2){
ans = 1.5-x1-2*x2-.5*sin(2*pi*(x1^2-2*x2))
ans = sapply(ans,function(x){max(x,0)})
return(ans)
}
z = outer(x1,x2,f)
w = outer(x1,x2,h)
persp(x1,x2,z)
image(x1,x2,w)
image(x1,x2,z,xlab=expression(x[1]),ylab=expression(x[2]))
contour(x1,x2,w,add=T,nlevels=10)
基本上,我想在下面生成这个透视图 然后将此热图叠加在透视图表面的顶部
为了在2D中可视化它应该是什么样子,我已经能够生成以下内容:
我更愿意使用R
中的基础软件包找到这个问题的答案,但是如果我需要安装软件包来获得我需要的东西,我也会对此持开放态度。
答案 0 :(得分:1)
persp
函数有一个col
参数,用于指定每个构面的颜色,因此如果根据w变量计算颜色并将其传入,则应该给出您想要的颜色。例如:
w2 <- w/max(w)
cr <- colorRamp(c('white','yellow','red'))
w3 <- cr(w2)
w4 <- rgb( w3[,1], w3[,2], w3[,3], maxColorValue=255 )
dim(w4) <- c(101,101)
persp(x1,x2,z, col=w4[1:100,1:100])
这里每个facet的颜色对应于左下角的w值,你可以在矩形的中心评估w,或者平均4个角的值等等。