【问题标题】:geom_density to match geom_histogram binwitdhgeom_density 匹配 geom_histogram binwitdh
【发布时间】:2016-09-21 02:26:58
【问题描述】:

我想在 ggplot2 的分布条图中添加一条线以显示平均分布,但我遇到了问题。

这样的 ggplot 调用:

ggplot(x, aes(date_received)) + 
    geom_histogram(aes(y = ..count..), binwidth=30) +
    geom_density()

为我提供每 30 天观察值的直方图条,但密度线正在跟踪每一天的计数,如下所示(底部的静态来自 geom_density

是否可以添加一个geom_density 层来覆盖一条线,该线将显示 30 天观察组的平均计数,例如geom_histogram 中的binwidth

感谢任何帮助。

【问题讨论】:

    标签: r ggplot2


    【解决方案1】:

    根据此e-mail 中给出的Brian S. Diggs 的回答,您应该将geom_density( 中的..count.. 的值乘以geom_histogram() 中的binwidth= 的值。

    set.seed(123)
    df<-data.frame(x=rnorm(1000,100,15))
    
    ggplot(df,aes(x))+
          geom_histogram(binwidth = 2.5)+
          geom_density(aes(y=2.5 * ..count..))
    

    【讨论】:

    • 当直方图使用归一化计数时,这似乎不起作用
    • @jdmartin86 如果你在geom_histogram() 中使用ncount,那么密度代码应该是geom_density(aes(y = ..ndensity..))
    • 非常有帮助!我添加了一个变量 bw(bin 宽度)。所以,我写了geom_density(aes(y=bw * ..count..))。如果未绘制 geom_histogram,则了解 bw 很重要,因此计数完全取决于它。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2021-04-14
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-07-17
    相关资源
    最近更新 更多