我试图在R中绘制出多重正态分布的密度,我的代码如下
set.seed(123)
x<-seq(-20,20,by=0.1)
y<-seq(-20,20,by=0.1)
n=length(x)
zz<-matrix(0,n,n)
for(i in 1:n){
for(j in 1:n){
zz[i,j]=exp(-x[i]^2/10-y[j]^2/5-2*0.3*x[i]*y[j]/(50^0.5))
}
}
contour(x,y,zz,nlevels =10)情节看起来就像

我的问题是,为什么它的范围看起来这么小,大部分区域是空白的。我要等高线图覆盖更荒野的区域,像我为xlim和ylim设置的范围。
发布于 2020-04-10 13:06:23
级别决定了要绘制的范围,在您的示例中,z值非常小,当您离开中心时:
barplot(colMeans(zz))

如果您查看默认创建的级别:
pretty(range(zz), 20)
[1] 0.00 0.05 0.10 0.15 0.20 0.25 0.30 0.35 0.40 0.45 0.50 0.55 0.60 0.65 0.70
[16] 0.75 0.80 0.85 0.90 0.95 1.00我不太熟悉你需要用这个情节做什么,所以希望下面的内容有意义。
为了覆盖更广泛的领域,您需要扩展级别以覆盖较低的值:
RN = quantile(zz,prob=c(0.5,1))
N = 10
contour(x,y,zz,nlevels=N,
levels=exp(pretty(log(RN), 10)))

https://stackoverflow.com/questions/61137196
复制相似问题