test <- rep(5,20)
hist(test,freq=FALSE,breaks=5)
向量包含值 5 的 20 倍。当我用 freq=FALS
E 绘制此图时,breaks=5
我希望在 x=5 处看到 1 个柱线,高度 = 1.0,因为值 5 占数据的 100%。
为什么我看到 1 根柱线的范围从 x=0 到 x=5 并且高度 = 0.2 ??
hist
绘制了freq=FALSE
或prob=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")
?另请参阅:如何使用 hist 绘制 R 中的相对频率?