1

我希望有人能够指导我正确的方式。我正在尝试生成大约 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)))

这是代码创建的图片:

在此处输入图像描述

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

谢谢!

4

1 回答 1

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)))
于 2013-10-16T22:36:59.097 回答