我想要对前10%本地化的区域进行着色。我只是随意的把截断点65,来画出这个图。这就是我打算find...for每个数据集的原因。
xf <- rnorm(40000, 50, 10);
plot(density(xf),xlim=c(0,100), main = paste(names(xf), "distribution"))
dens <- density(xf)
x1 <- min(which(dens$x >= 65)) # I want identify this point such that
# the shaded region includes top 10%
x2 <- max(which(dens$x < max(dens$x)))
with(dens, polygon(x=c(x[c(x1,x1:x2,x2)]), y= c(0, y[x1:x2], 0), col="green"))
abline(v= mean(traitF2), col = "black", lty = 1, lwd =2)

发布于 2011-11-13 21:59:59
我认为您正在寻找quantile()函数:
xf <- rnorm(40000, 50, 10)
plot(density(xf),xlim=c(0,100), main = paste(names(xf), "distribution"))
dens <- density(xf)
x1 <- min(which(dens$x >= quantile(xf, .90))) # quantile() ftw!
x2 <- max(which(dens$x < max(dens$x)))
with(dens, polygon(x=c(x[c(x1,x1:x2,x2)]), y= c(0, y[x1:x2], 0), col="green"))

发布于 2011-11-13 21:49:16
https://stackoverflow.com/questions/8111947
复制相似问题