我有两个相关的问题.
问题1:我目前正在使用下面的代码生成叠加密度图的直方图:
hist(x,prob=T,col="gray")
axis(side=1, at=seq(0,100, 20), labels=seq(0,100,20))
lines(density(x))
Run Code Online (Sandbox Code Playgroud)
我贴的数据(即x上图)在这里.
我对代码有两个问题:
问题2:对问题1使用类似的解决方案,我现在想要覆盖三个密度图(不是直方图),再次使用y轴上的频率而不是密度.这三个数据集位于:
这是你的前两个问题:
myhist <- hist(x,prob=FALSE,col="gray",xlim=c(0,100))
dens <- density(x)
axis(side=1, at=seq(0,100, 20), labels=seq(0,100,20))
lines(dens$x,dens$y*(1/sum(myhist$density))*length(x))
Run Code Online (Sandbox Code Playgroud)
直方图的bin宽度为5,也等于1/sum(myhist$density),而density(x)$x在你的情况下,它们是小跳跃,大约.2(512个偶数步长).sum(density(x)$y)是一个奇怪的数字肯定不是1,但那是因为它以小步进去,当除以x间隔时它大约是1 : sum(density(x)$y)/(1/diff(density(x)$x)[1]). 您不需要稍后执行此操作,因为它已经与其自己的奇数x值匹配.比例1)对于bin的宽度为hist()2,对于x的频率length(x),如DWin所示.设置xlim参数后,最后一个轴刻度变为可见.
要解决您的问题2,请设置具有正确尺寸(xlim和ylim)的图type = "n",然后绘制3条线以获得密度,使用类似于上面密度线的尺寸进行缩放.然而,想想你是否希望那些半连续的线条反映出宽度为5的假想条形的高度......你会看到密度线如何在任何特定点夸大计数?

| 归档时间: |
|
| 查看次数: |
7578 次 |
| 最近记录: |