"密度"曲线覆盖直方图,其中垂直轴是频率(也称为计数)或相对频率?

Pat*_* W. 8 r ggplot2

当垂直轴是频率或相对频率时,是否有一种方法可以叠加类似于密度曲线的东西?(不是实际的密度函数,因为该区域不需要整合到1).以下问题类似: ggplot2:具有正常曲线的直方图,以及用户自我回答..count..的内容geom_density().然而这似乎不寻常.

以下代码产生过度膨胀的"密度"线.

df1            <- data.frame(v = rnorm(164, mean = 9, sd = 1.5))
b1             <- seq(4.5, 12, by = 0.1)
hist.1a        <- ggplot(df1, aes(v)) + 
                    stat_bin(aes(y = ..count..), color = "black", fill = "blue",
                             breaks = b1) + 
                    geom_density(aes(y = ..count..))
hist.1a
Run Code Online (Sandbox Code Playgroud)

情节

Pat*_* W. 19

@joran的回复/评论让我想到了适当的缩放因子是什么.为了后人的缘故,这是结果.

垂直轴是频率(也称为计数)

密度

因此,以箱计数测量的垂直轴的缩放因子是

bincount

在这种情况下,使用N = 164和宽度为0.1,平滑线中y的美学应为:

y = ..density..*(164 * 0.1)
Run Code Online (Sandbox Code Playgroud)

因此,下面的代码产生一个"密度"线,用于按频率(也称为计数)测量的直方图进行缩放.

df1            <- data.frame(v = rnorm(164, mean = 9, sd = 1.5))
b1             <- seq(4.5, 12, by = 0.1)
hist.1a        <- ggplot(df1, aes(x = v)) + 
                    geom_histogram(aes(y = ..count..), breaks = b1, 
                                   fill = "blue", color = "black") + 
                    geom_density(aes(y = ..density..*(164*0.1)))
hist.1a
Run Code Online (Sandbox Code Playgroud)

情节

垂直轴是相对频率时

relfreq

使用上面的内容,我们可以写

hist.1b        <- ggplot(df1, aes(x = v)) + 
                    geom_histogram(aes(y = ..count../164), breaks = b1, 
                                   fill = "blue", color = "black") + 
                    geom_density(aes(y = ..density..*(0.1)))
hist.1b
Run Code Online (Sandbox Code Playgroud)

RELF

当垂直轴是密度时

hist.1c        <- ggplot(df1, aes(x = v)) + 
                    geom_histogram(aes(y = ..density..), breaks = b1, 
                                   fill = "blue", color = "black") + 
                    geom_density(aes(y = ..density..))
hist.1c
Run Code Online (Sandbox Code Playgroud)

窝点


jor*_*ran 5

试试这个:

ggplot(df1,aes(x = v)) + 
   geom_histogram(aes(y = ..ncount..)) + 
   geom_density(aes(y = ..scaled..))
Run Code Online (Sandbox Code Playgroud)

  • @PatW。平滑密度估计和分箱计数不在同一范围内(正如您在第一次尝试中观察到的那样)。要对齐它们,您必须将它们放置在相同的比例上。您可以根据自己的喜好调整该比例,但需要进行一些调整。 (3认同)