如何在两个直方图中同时绘制这两个向量中的值密度:
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")
我得到了一个严厉的结果。这是不对的,因为密度*箱的总和超过1.我做错了什么?任何帮助将不胜感激。
P.S。我尝试发布这些情节,但这并没有让我......
答案 0 :(得分:2)
如果您不想设置binwidth = 1,则可以将y值乘以binwidth。例如:
m + geom_histogram(binwidth = 0.5,aes(y =(..density ..)* 0.5))
这允许您改变binwidth并使用适当的比例创建频率直方图。
答案 1 :(得分:1)
试试这个
data=(melt(interactors))
ggplot(data, aes(x=value, fill=variable)) + geom_histogram(aes(y=..density..), binwidth = 1)
答案 2 :(得分:0)
感谢Jaap和Philippe的回复,非常感谢。我在Google上找到了我想要的东西,但也会在这里发布 - 越多信息就越好。
为了使密度之和等于1,必须指定binwidth = 1(感谢Jaap)。当箱子不等于1时,密度之和不等于1.相反,密度*箱宽度乘积之和等于1.当binwidth = 1时,每个矩形的高度(密度)为等于变量值= x的概率。当binwidth!= 1时,其概率等于矩形的面积,即密度*矩形的宽度/ bin的大小/。
为每个人欢呼。 :)