繁体   English   中英

不使用density()在R中分层密度图

[英]Layering density plots in R without using density()

我已经使用KernSmooth软件包计算并绘制了高斯核密度估计值,如下所示:

 x <- MyData$MyNumericVector
 h <- dpik(x)
 est <- bkde(x, bandwidth=h)
 plot(est, type='l')

这是KernSmooth文档中描述的方法。 请注意, dpik()找到最佳带宽,而bkde()使用该带宽来拟合内核密度估计。 重要的是,我使用此方法代替基本的density()函数。

如何将这些地块彼此叠加?

我无法使用geom_density() ggplot2依赖的基本density()函数,因为带宽和内核密度估计值是使用KernSmooth软件包进行最佳优化的(请参见Deng&Wickham,2011,这里: http ://vita.had.co 。 nz / papers / density-estimation.pdf )。 由于Wickham编写了ggplot2以及上面对内核密度估计软件包的回顾,因此,有一种方法可以使用ggplot2来分层不依赖于基本density()函数的density() ,但是我不确定。

即使我不想使用基本的density()函数,我也可以使用ggplot2吗? lattice

您可以使用geom_line来做到这geom_line

 m <- ggplot(NULL, aes(x=bkde(movies$votes)$x,y=bkde(movies$votes)$y)) + geom_line()
 print(m)

如果您正在使用grid :: densityplot做t,则可能会将一些值添加到drags-list中:

DARG
传递给密度函数的参数列表。 通常,这应该是一个包含零个或多个以下成分的列表:bw,adjust,kernel,window,width,give.Rkern,n,从,至,cut,na.rm(有关详细信息,请参见密度)

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM