有没有办法让ggplot2的geom_density()函数模仿ggvis的行为layer_densities()?也就是说,在没有调用的情况下使它p1看起来如此p3(见下文)xlim()?具体来说,我更喜欢使密度曲线的尾部平滑的视图.
library(ggvis)
library(ggplot2)
faithful %>%
ggvis(~waiting) %>%
layer_densities(fill := "green") -> p1
ggplot(faithful, aes(x = waiting)) +
geom_density(fill = "green", alpha = 0.2) -> p2
ggplot(faithful, aes(x = waiting)) +
geom_density(fill = "green", alpha = 0.2) +
xlim(c(30, 110)) -> p3
p1
p2
p3
Run Code Online (Sandbox Code Playgroud)
ggvis输出:

ggplot2"默认":

ggplot2"需要":

注意:可以通过以下(使用trim=TRUE)制作ggvis mimic ggplot2 ,但我想转向另一个方向......
faithful %>%
compute_density(~waiting, trim=TRUE) %>%
ggvis(~pred_, ~resp_) %>%
layer_lines()
Run Code Online (Sandbox Code Playgroud)
如何调用xlim,但具有以编程方式定义的限制?
l <- density(faithful$waiting)
ggplot(faithful, aes(x = waiting)) +
geom_density(fill = "green", alpha = 0.2) +
xlim(range(l$x))
Run Code Online (Sandbox Code Playgroud)

不利的一面是双密度估计,所以请记住这一点.