密度直方图按R的间隔

时间:2014-11-18 14:37:25

标签: r statistics histogram

我想绘制密度

的直方图
x<-c(1,15,44,40)
bits<-c(10,20,170,200)
hist(x,breaks=c(0,cumsum(bits)),right=F,freq=F)

此直方图不会绘制密度为40/200的区间[200,400]。 我应该修改什么?

1 个答案:

答案 0 :(得分:1)

如果我理解你,你有预先装箱的数据:

interval      count
[  0,  10)        1
[ 10,  30)       15
[ 30, 200)       44
[200, 400)       40
total           100

您的代码不起作用,因为hist会自行尝试将x中的值设为bin。 1进入第一个区间,15进入第二个区间,44进入第四个区间。

我不知道如何使用hist执行此操作。使用ggplot2,您可以使用weight geom_histogram美学来获得您想要的内容:

x <- c(1,15,44,40,0)
bits <- c(10,20,170,200)
breaks <- c(0,cumsum(bits))
ggplot(data=as.data.frame(cbind(bits,x)), aes(x=bits, weight=x)) +
    geom_histogram(aes(y=..density..), breaks=breaks)

在直方图中,间隔的密度为0.002。 0.002 * 200 = 0.4 = 40/100

result of ggplot2