我认为我的问题最好通过一个例子解释:
set.seed(12)
n <- 100
x <- rt(n, 1, 0)
library("ggplot2")
p <- ggplot() + geom_density(aes(x))
p
p + xlim(min(x), 300)
为什么更改xlim时y轴会自动改变?密度不应该改变,所以对我来说没有意义。当我使用基础图时,这不会发生。
plot(density(x))
plot(density(x), xlim = c(min(x), 300))
答案 0 :(得分:4)
使用return
完全删除超出范围的观察值。尝试使用xlim
。
答案 1 :(得分:1)
使用geom_density(..., n=2^16)
或类似的内容以获得更稳定的体验。
与density
相比,函数geom_density
在决定评估密度估计的点时确实考虑了通过xlim
设置的x范围。但是,这些点的 number 保持固定为512(除非使用n
将其设置为更高的值)。因此,x范围越大,错过某些峰的可能性就越大。我认为应该对此进行记录。