【问题标题】:ggplot2 density histogram with custom bin edges具有自定义 bin 边缘的 ggplot2 密度直方图
【发布时间】:2013-11-12 08:00:50
【问题描述】:

我可以绘制密度直方图,也可以使用自定义 bin 绘制常规直方图,但不能同时使用两者。这是我的尝试:

library(ggplot2)

vals = c(2.6, 5.2, 4.1, 6.9, 5.7, 5.2, 4.4, 5.5, 6.3, 6.1, 4.7, 1.4)
myplot = qplot(vals, geom = 'blank') +   
         geom_line(aes(y = ..density..), stat = 'density',
                   colour = 26, size = 2, alpha = .6) +                     
         geom_histogram(aes(y = ..density..), binwidth = 1,
                        fill = 28, alpha = 0.3) +
         stat_bin(breaks=seq(-.5,8.5,1)) + xlim(-1, 9)

print(myplot)

如果删除 stat_bin 项,直方图将正确绘制为密度直方图,但具有默认的 bin 位置。添加stat_bin 术语,分箱是正确的,但它不再是密度直方图。任何想法如何让两者都工作?

【问题讨论】:

    标签: r ggplot2


    【解决方案1】:

    您可以将参数breaks= 添加到geom_histogram() 以设置您自己的断点(您不必同时使用geom_histogram()stat_bin(),因为geom_histogram() 使用stat_bin() 来产生结果)。

    qplot(vals, geom = 'blank') +   
      geom_line(aes(y = ..density..), colour=26, stat = 'density', size = 2, alpha = .6) + 
      geom_histogram(aes(y = ..density..), fill = 28, alpha = 0.3, breaks=seq(-.5,8.5,1))
    

    【讨论】:

    • 如果这正是“您正在寻找的”,您能接受这个答案吗?点击投票按钮正下方的绿色勾号。
    猜你喜欢
    • 2019-10-23
    • 2022-01-17
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-07-15
    相关资源
    最近更新 更多