我一直在使用“ks”包和“rgl”包来生成 3D 内核密度估计和这些的 3D 图。第一部分效果很好(下面的简短示例)。我无法弄清楚的是,是否可以首先提取用于构建内核的给定 xyz 位置的内核值。换句话说,提取 3D 图中点的值,类似于用于 'raster' 包中的 2D 表面的提取命令。有没有人有做这样的事情的经验可以为我指明正确的方向?非常感谢。-DJ
library("rgl")
library("ks")
# call the plug-in bandwidth estimator
H.pi <- Hpi(b,binned=TRUE) ## b is a matrix of x,y,z points
# calculate the kernel densities
fhat2 <- kde(b, H=H.pi)
#plot the 50% and 95% kernels in gray and blue
plot(fhat2,cont=c(50,95),colors=c("gray","blue"),drawpoints=TRUE
,xlab="", ylab="", zlab="",size=2, ptcol="white", add=FALSE, box=TRUE, axes=TRUE)
#Structure of fhat2. Original df consists of ~6000 points.
List of 9
$ x : num [1:6173, 1:3] -497654 -497654 -497929 -498205 -498205 ...
..- attr(*, "dimnames")=List of 2
.. ..$ : chr [1:6173] "50" "57" "70" "73" ...
.. ..$ : chr [1:3] "x" "max_dep" "y"
$ eval.points:List of 3
..$ : num [1:51] -550880 -546806 -542733 -538659 -534586 ...
..$ : num [1:51] -7.9 -4.91 -1.93 1.06 4.05 ...
..$ : num [1:51] -376920 -374221 -371522 -368823 -366124 ...
$ estimate : num [1:51, 1:51, 1:51] 0 0 0 0 0 ...
$ H : num [1:3, 1:3] 3.93e+07 -2.97e+03 8.95e+06 -2.97e+03 2.63e+01 ...
$ gridtype : chr [1:3] "linear" "linear" "linear"
$ gridded : logi TRUE
$ binned : logi FALSE
$ names : chr [1:3] "x" "max_dep" "y"
$ w : num [1:6173] 1 1 1 1 1 1 1 1 1 1 ...
- attr(*, "class")= chr "kde"