更改xlim会自动更改geom_density的ylim

时间:2016-05-31 08:28:18

标签: r ggplot2

我认为我的问题最好通过一个例子解释:

set.seed(12)
n <- 100
x <- rt(n, 1, 0)

library("ggplot2")
p <- ggplot() + geom_density(aes(x))
p
p + xlim(min(x), 300)

default xlim

new xlim

为什么更改xlim时y轴会自动改变?密度不应该改变,所以对我来说没有意义。当我使用基础图时,这不会发生。

plot(density(x))
plot(density(x), xlim = c(min(x), 300)) 

2 个答案:

答案 0 :(得分:4)

使用return完全删除超出范围的观察值。尝试使用xlim

答案 1 :(得分:1)

使用geom_density(..., n=2^16)或类似的内容以获得更稳定的体验。

density相比,函数geom_density在决定评估密度估计的点时确实考虑了通过xlim设置的x范围。但是,这些点的 number 保持固定为512(除非使用n将其设置为更高的值)。因此,x范围越大,错过某些峰的可能性就越大。我认为应该对此进行记录。