我将感谢您在以下问题上的帮助(我应该补充说,我也发送了一封电子邮件到ggplot2邮件列表,还没有收到任何人的意见)。
我们确实有一个数据帧一个称为EXP的因子它有3级(二甲基亚砜、DMSO1、DMSO2)
head(pp_ALL)
VALUE EXP
1 1639742 DMSO
2 1636822 DMSO
3 1634202 DMSO我的目标是覆盖吗?相对频率直方图,或密度直方图对于因子水平,
请您告诉我为什么以下两段R代码显示出非常不同的结果(在密度直方图的高度和解释方面):
ggplot(pp_ALL, aes(x=VALUE, colour=EXP)) + geom_density()对比
ggplot(data=pp_ALL) +
geom_histogram(mapping=aes(x=VALUE, y=..density.., colour=EXP), bins=1000)谢谢
博格丹
发布于 2021-02-25 13:46:31
让我们来比较下面的两个例子。使用此数据的默认设置,它们在形状和密度上看起来非常相似。基于它们的工作方式,它们确实有一些细微的差异,密度图使用平滑算法,而直方图使用离散的柱状图。这有时可以使直方图更容易解释(高度=该柱状图中of的份额,按柱状图宽度缩放),而密度图可能更能反映底层的平滑分布。但您会注意到,在这里它们非常相似。
diamonds %>%
mutate(cut = factor(cut)) %>%
ggplot() +
geom_density(aes(x = carat, color = cut)) +
facet_wrap(~cut)

diamonds %>%
mutate(cut = factor(cut)) %>%
ggplot() +
geom_histogram(aes(x = carat, y = ..density.., fill = cut)) +
facet_wrap(~cut)
使用其他设置,它们可能看起来非常不同。如果我们将密度图上的带宽设置为1/10,或者对直方图使用10倍数量的柱状图,就会使峰值变得更窄、更高,同时继续将面积积分到1,就像以前一样。我假设你看到的主要情况是你的直方图比你的密度图具有更高的粒度(bins = 1000),所以任何尖峰都会比密度图中的更窄和更高。
geom_density(aes(x = carat, color = cut), adjust = 1/10) +
..。

geom_histogram(aes(x = carat, y = ..density.., fill = cut), bins = 300) +
..。

在使用多个因子的情况下,您可能会注意到的另一个行为差异是,密度图使用没有堆叠的线条,而直方图堆叠--即使直方图具有相同的带宽设置,这也会使直方图更高,因为它堆叠了每个因子的密度。
与原始相同,但没有方面_包装。

尝试
geom_density(aes(x = carat, color = cut), position = "stack")
让它更像直方图。

尝试
geom_histogram(aes(x = carat, y = ..density.., fill = cut), position = "dodge")
使其更像密度图。]
https://stackoverflow.com/questions/66362697
复制相似问题