有没有办法让ggplot2的geom_density()
函数模仿ggvis' s 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
?具体来说,我更喜欢使密度曲线的尾部平滑的视图。
trim=TRUE
ggvis输出:
ggplot2"默认":
ggplot2"期望":
注意:可以通过以下方式制作ggvis mimic ggplot2(使用faithful %>%
compute_density(~waiting, trim=TRUE) %>%
ggvis(~pred_, ~resp_) %>%
layer_lines()
),但我想转向另一个方向......
{{1}}
答案 0 :(得分:6)
如何调用xlim
,但是使用以编程方式定义的限制?
l <- density(faithful$waiting)
ggplot(faithful, aes(x = waiting)) +
geom_density(fill = "green", alpha = 0.2) +
xlim(range(l$x))
不利的一面是双倍密度估计,所以请记住这一点。