我对geom_density
ggplot中以下变种的含义感到困惑:
有人可以解释这四个电话之间的区别:
geom_density(aes_string(x=myvar))
geom_density(aes_string(x=myvar, y=..density..))
geom_density(aes_string(x=myvar, y=..scaled..))
geom_density(aes_string(x=myvar, y=..count../sum(..count..)))
我的理解是:
geom_density
单独产生密度,其曲线下面积总和为1geom_density
与..density..
基本相同...?..count../sum(..count..)
将正常化峰高更像一个标准化直方图,以确保所有的高度之和为1..count..
没有分母,则只需将每个bin乘以其中的项目数..scaled..
参数将使它这样的密度的最大值为1.我发现..scaled..
非常违反直觉,如果我对它的解释是正确的,我从未见过它,所以我想忽略它.我主要是在寻找澄清之间的差异geom_density
和一种归一化密度图,我假设需要...count../...
参数.谢谢.
mne*_*nel 12
stat_density
is 的默认美学,默认情况下将默认使用默认情况下..density..
调用的调用.geom_density
stat_density
y = ..density..
您可以通过查看源代码来查看各列的计算方式
..scaled..
被定义为
densdf$scaled <- densdf$y / max(densdf$y, na.rm = TRUE)
Run Code Online (Sandbox Code Playgroud)
如果您愿意,请随意忽略它.
结果如此计算
res <- within(results, {
count[is.na(count)] <- 0
density <- count / width / sum(abs(count), na.rm=TRUE)
ncount <- count / max(abs(count), na.rm=TRUE)
ndensity <- density / max(abs(density), na.rm=TRUE)
})
Run Code Online (Sandbox Code Playgroud)
因此,如果你想比较geom_histogram
(使用默认值stat = 'bin'
)的结果,那么你可以设置y = ..density..
它,它将count / sum(count)
为你计算(计算箱的宽度)
如果你想比较geom_density(aes(y=..scaled..))
有stat_bin
,那么你可以使用geom_histogram(aes(y = ..ndensity..))
您也可以通过同时使用它们来获得相同的比例..count..
,但是您需要调整adjust
参数stat_density
以获得曲线的适当详细的近似值.