颜色不';t显示在R中使用persp3d()函数

颜色不';t显示在R中使用persp3d()函数,r,function,graph,colors,3d,R,Function,Graph,Colors,3d,在R中使用persp3d()函数时遇到一些问题。以下是我的代码: library(rgl) vero=function(mu,sigma,datos) { n=length(datos) media=mean(datos) S2=sd(datos)^2 lvero=(-n/2)*log(2*pi*sigma)-(n/(2*sigma))*S2-(n/(2*sigma))*(media-mu)^2

在R中使用persp3d()函数时遇到一些问题。以下是我的代码:

    library(rgl)
    vero=function(mu,sigma,datos)
    {
        n=length(datos)
        media=mean(datos)
        S2=sd(datos)^2
        lvero=(-n/2)*log(2*pi*sigma)-(n/(2*sigma))*S2-(n/(2*sigma))*(media-mu)^2
        return(exp(lvero))
    }

    nbebes=rnorm(20, mean=75, sd=2.5)
    mu.seq <- seq(60,100,length=2000)
    sigma.seq <- seq(1,20,length=2000)


    f <- Vectorize(vero,vectorize.args=c("mu","sigma"))
    z <- outer(mu.seq,sigma.seq,f,datos=nbebes)
    zlim <- range(z[!is.na(z)])
    palette <- rev(rainbow(20))
    colors <- palette[19*(z-zlim[1])/diff(zlim) + 1] 

    persp3d(mu.seq,sigma.seq,z,col=colors)
库(rgl)
vero=函数(μ、西格玛、达托)
{
n=长度(datos)
介质=平均值(达托)
S2=sd(数据)^2
lvero=(-n/2)*log(2*pi*sigma)-(n/(2*sigma))*S2-(n/(2*sigma))*(媒体mu)^2
返回(exp(lvero))
}
nbebes=rnorm(20,平均值=75,标准差=2.5)

mu.seq我无法确切说明这是一个问题的原因,但它似乎与z轴的限制有关。当我将
z
重新缩放到
z2时
nbebes=rnorm(20, mean=75, sd=2.5)
mu.seq <- seq(60,100,length=500)
sigma.seq <- seq(1,20,length=500)

f <- Vectorize(vero,vectorize.args=c("mu","sigma"))
z <- outer(mu.seq,sigma.seq,f,datos=nbebes)
z2 <- z/max(z)
colors <- rev(rainbow(20))
breaks <- seq(zlim[1], zlim[2], length.out=(length(colors)+1))
CUT <- cut(z2, breaks=breaks, include.lowest = TRUE)
colorlevels <- colors[match(CUT, levels(CUT))] # assign colors to heights for each point

persp3d(mu.seq,sigma.seq,z2,color=colorlevels)