ggplot2 - 直方图的不同bin大小

时间:2013-10-16 22:04:22

标签: r ggplot2 histogram

我希望有人能够指引我正确的方式。我正在尝试生产约100个直方图,因此我的问题的解决方案必须易于重现。

我有一个值向量,范围从0.0000(零值)到1.0000的上限。有大量的0.0000值,其余的值更加分散。

我现在要创建一个具有不同bin大小的直方图。我希望所有零值都有一个bin,然后bin大小应为0.005

以下是一些可重现的代码,用于说明我的实际数据:

per_value <- rbeta(200, 1, 1, ncp = 0.3)
percent_change <- c(0,0,0,0,0, rbeta(195, 1, 1, ncp = 0.1))

valua_chg <- data.frame(cbind(per_value, percent_change))

ggplot(valua_chg, aes(x=percent_change)) + 
   stat_bin(breaks=c(0, seq(0.001,1.0, by=0.005)))

以下是代码创建的图片:

enter image description here

问题是零箱的箱尺寸非常小,与其他箱的尺寸不同。有谁知道如何解决这个问题。

谢谢!

1 个答案:

答案 0 :(得分:2)

最快,最简单的方法是将最小间隔设置为-0.004,以便包含零的bin具有相同的宽度0.005。 bin不会在零上居中,但如果您的数据绑定在0和1之间,则应该没问题:

ggplot(valua_chg, aes(x=percent_change)) + 
  stat_bin(breaks=c(-0.004, seq(0.001,1.0, by=0.005)))