我想绘制密度
的直方图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]。 我应该修改什么?
答案 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