直方图不显示密度

时间:2012-11-28 22:36:34

标签: r plot histogram

我尝试过不同的函数和几个不同的参数但直方图

hist(estimator, probability=T, br=5)
无论我选择什么样的绘图函数或参数,

都不显示y轴上的密度。 矢量“估计器”包含大约0.4到0.6之间的100个值。

准确地说:通过创建一个hist对象,然后计算和更改密度并通过plot()再次绘制它的方式,但我不希望首先绘制hist对象:/ Plot

1 个答案:

答案 0 :(得分:7)

当您指定probability=T(或者更好probability=TRUE时,如果T更改为TRUE之外的其他内容,则不会搞砸了直方图条的整个区域加1,因为条的宽度非常小于1,高度需要大于1,因此区域都加1。这样可以很容易地叠加密度估计曲线或理论密度曲线或添加其他参考。

一般来说,你应该忽略y轴上的刻度标签(如果它们甚至没有被绘制就会更好),它们只是分散了绘图的重要部分。

许多人认为他们希望y轴刻度标签代表每个分组中观察的比例(或百分比)(并且可以使用您自己的自定义轴),但我认为这仍然是一种分心。考虑如果你改变直方图中条形/间隔的数量会发生什么,直方图的整体结构保持不变(假设你没有做出剧烈的改变),但是y轴上的刻度标签有时会发生变化相当多,所以他们更好地被忽略(或者首先不生产)。

如果你真的认为需要百分比(或比例),那么代码就像这样简单:

x <- rgamma(327, 5, 3)

tmp <- hist(x, yaxt='n',ylab='Percent')
tmp2 <- pretty( tmp$counts/sum(tmp$counts)*100 )
axis(2, at=tmp2*sum(tmp$counts)/100, labels=tmp2)

如果你愿意,可以很容易地将它包装成一个函数。