persp.default(x, y, z) 中的 R 外部函数错误:'z' 限制无效

R outer function Error in persp.default(x, y, z) : invalid 'z' limits

谁能给我解释一下为什么这两段代码 return 是两个不同的东西? 第一个:

x<-y<-seq(from=-1,to=1,by=0.1)
one<-function(x,y){
    x
}
z<-outer(x,y,FUN=one)
persp(x,y,z)

return它应该是表面。

而 :

x<-y<-seq(from=-1,to=1,by=0.1)
one<-function(x,y){
    array(1, dim=length(x))
 }
 z<-outer(x,y,FUN=one)
 persp(x,y,z) 

returns : "Error in persp.default(x, y, z = outer(x, y, one)) : invalid 'z' limits"

第二种情况,绘制平面z=1,你只需要自己指定想要的zlim即可,例如

persp(x,y,z,zlim=c(0,2))

persp 函数需要绘制 3 维 space。默认是尝试在 xyz 范围内绘图,但在这种情况下 z 的范围是退化的。