我在使用ggplot创建直方图时遇到了麻烦。
我的数据结构如下:
value_1
112.45
2457.44
333.24
这个值列表继续进行大约25000次观察。
我想要一个直方图,其频率值为0-100,然后是100-200,然后是200-300,直到值的上限。
在上面的示例中,将在bin 100-200中给出1个计数,在bin 300-400中计数1个,在bin 2400-2500中计数1个。
你能帮助我朝正确的方向发展吗?
答案 0 :(得分:2)
您可以同时设置binwidth
以及center
或boundary
来设置正确的纸槽宽度:
df <- data.frame(x = c(112.45, 2457.44, 333.24))
library(ggplot2) # 2.2.1
ggplot(df, aes(x)) + geom_histogram(binwidth = 100, center = 150)
# or
ggplot(df, aes(x)) + geom_histogram(binwidth = 100, boundary = 100)
中心
其中一个箱子的中心。请注意,如果中心位于或上方 在数据范围之下,事物将被适当地移动 宽度数。例如,以整数为中心,使用width = 1 即使0超出数据范围,中心= 0也是如此。最多 可以指定中心和边界之一。
边界
边界 在两个箱子之间。与中心一样,当边界变化时,事物会发生变化 超出数据范围。例如,以整数为中心,使用 width = 1且boundary = 0.5,即使0.5超出范围 数据。最多可以指定一个中心和边界。
如果您知道数据的范围,您也可以仅使用breaks =
中的geom_histogram
手动设置此数据。