【发布时间】:2014-08-20 21:03:45
【问题描述】:
如何将这两个向量中值的密度同时绘制为两个直方图:
interactors1 = c(-6.4, -3.7, -7.7, -4.6, -2.0, -5.5, -3.3, -5.8, -5.0, -4.5,
3.2, -0.1, -3.0, -9.2, -3.1, -8.5, -5.4, -9.1, -7.7, 2.2,
1.7, 3.4, -8.6, -0.5, -8.1)
和
noninteractors1 = c(-1, 0.1, 2.7, 0.4, 4.3)
在你问之前,是的,我确实检查了this post
我想使用 ggplot 而不是 hist,因为绘图看起来好多了。当我将数据融合到数据框中并绘制计数时,一切都很好 - 我明白了
interactors=data.frame(interactors1,noninteractors1)
ggplot(melt(interactors), aes(value, fill = variable))
+ geom_histogram(position = "dodge")
但是,我不需要计数,我需要密度。
当我这样做时
ggplot(melt(interactors), aes(value, fill = variable))
+ geom_histogram(aes(y=..density..),position = "dodge")
我得到了一个老生常谈的结果。这不可能是正确的,因为 densities*bins 的总和超过 1。我做错了什么?任何帮助将不胜感激。
附:我尝试发布情节,但它不让我......
【问题讨论】:
-
如果您希望它加起来为 1,则应添加
binwidth=1。否则密度加起来为1/binwidth,这是由ggplot自动设置的(带有警告)。一般来说,我建议不要忽视警告信息...... -
当我指定并明确指定 binsidth=1 时,我得到一个直方图,其中 bins*density 的总和似乎不等于 1。它看起来肯定比不指定 bin 中断更好,但我如何解释结果?大家干杯。