Có cách nào để làm cho hàm ggplot2's geom_density()
bắt chước hành vi của ggvis's layer_densities()
? Tức là, làm cho nó như vậy p1
trông giống như p3
(xem bên dưới) mà không cần gọi tới xlim()
? Cụ thể, tôi thích chế độ xem làm mịn các đường cong của đường cong mật độ.Điều chỉnh x giới hạn xlim() trong ggplot2 geom_density() để bắt chước hành vi ggvis layer_densities()
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
ggvis Output:
ggplot2 "mặc định":
ggplot2 "mong muốn":
Lưu ý: Người ta có thể làm cho ggvis bắt chước ggplot2 qua như sau (sử dụng trim=TRUE
), nhưng tôi muốn đi theo một hướng khác ...
faithful %>%
compute_density(~waiting, trim=TRUE) %>%
ggvis(~pred_, ~resp_) %>%
layer_lines()
Tại sao tránh đối số xlim? Bạn có lo ngại rằng giải pháp sẽ không đủ chung? –
@ RomanLuštrik đúng - Tôi đang tìm một giải pháp tổng quát hơn. – JasonAizkalns