R直方图和密度图中的轴标记; 多个密度图叠加

use*_*664 2 r

我有两个相关的问题.

问题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上图)在这里.

我对代码有两个问题:

  • 最后一个刻度线和x轴的标签(100)没有出现在直方图/图上.我怎么能把它们放在上面?
  • 我希望y轴是计数或频率而不是密度,但我想将密度图保留为直方图上的叠加图.我怎样才能做到这一点?

问题2:对问题1使用类似的解决方案,我现在想要覆盖三个密度图(不是直方图),再次使用y轴上的频率而不是密度.这三个数据集位于:

  1. http://pastebin.com/z5X7yTLS

  2. http://pastebin.com/Qg8mHg6D

  3. http://pastebin.com/aqfC42fL

tim*_*ffe 5

这是你的前两个问题:

    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,请设置具有正确尺寸(xlimylim)的图type = "n",然后绘制3条线以获得密度,使用类似于上面密度线的尺寸进行缩放.然而,想想你是否希望那些半连续的线条反映出宽度为5的假想条形的高度......你会看到密度线如何在任何特定点夸大计数?

在此输入图像描述