利用R语言画密度直方图比较方便,但为了理解密度函数的意义和如何计算密度值,于是用plot,lines两个画图函数来自己实现密度直
方图的画图程序脚本如下:
DrawDensity = function(x,bw=5)
{
if(any(bw<=0))
{
bw <- 5
}
#print(bw)
n <- length(x)
if(any(n>0))
{
mn <- min(x)
mx <- max(x)
rmn <- (mn %/% bw)
begx <- rmn * bw
rmn <- (mx %/% bw)
endx <- (rmn) * bw
if ((mx-rmn * bw) > 0)
{
endx <- (rmn+1) * bw
}
segs <- (endx-begx) %/% bw
segcounts <- numeric(segs)
validsegs <- 0
print(segs)
for(i in 1:segs)
{
slw <- begx+(i-1) * bw
sup <- begx+(i) * bw
tmp<- x[x > slw & x<=sup];
segcounts[i]<- length(tmp)
if(length(tmp)>0)
{
validsegs <- validsegs+1
}
}
#计算基本密度: