简单的直方图错误?

时间:2014-01-12 15:02:40

标签: r histogram

test <- rep(5,20)
hist(test,freq=FALSE,breaks=5)

向量包含值的20倍。当我用freq=FALS E和breaks=5绘制此图时,我期望在x = 5时看到1 bar,高度= 1.0,因为值5组成100%的数据。

为什么我会看到1条范围从x = 0到x = 5并且高度= 0.2 ??

1 个答案:

答案 0 :(得分:3)

hist绘制了freq=FALSEprob=TRUE时概率密度的估算值,因此总计区域直方图总和为1.由于绘制的单个条形的水平范围是(0,5),因此高度必须为0.2(5 * 0.2 = 1)

如果确实想要你想要的直方图(即高度对应于计数的一部分,区域不一定总和为1),你可以这样做:

 h <- hist(test,plot=FALSE)
 h$counts <- h$counts/length(test)
 plot(h)

另一种可能性是强制条宽等于1.0,例如

 hist(test,freq=FALSE,breaks=0:10)

或许你想要

 plot(table(test)/length(test))

 plot(table(test)/length(test),lwd=10,lend="butt")

? 另见:How do you use hist to plot relative frequencies in R?