Làm thế nào để bạn xác định các loại geom khác nhau cho các khía cạnh khác nhau trong một ggplot?Bạn có thể chỉ định các geom khác nhau cho các khía cạnh khác nhau trong một ggplot không?
(Khi được hỏi thay mặt @pacomet, người wanted to know.)
Làm thế nào để bạn xác định các loại geom khác nhau cho các khía cạnh khác nhau trong một ggplot?Bạn có thể chỉ định các geom khác nhau cho các khía cạnh khác nhau trong một ggplot không?
(Khi được hỏi thay mặt @pacomet, người wanted to know.)
đây là một cách tiếp cận bởi Subsetting dữ liệu:.
ggplot(mtcars, aes(mpg, disp)) + facet_wrap(~cyl) +
geom_point(data = subset(mtcars, cyl == 4)) +
geom_line(data = subset(mtcars, cyl == 6)) +
geom_text(data = subset(mtcars, cyl == 8), aes(label = gear))
Dưới đây là một số dữ liệu mẫu với 5 nhóm (g
). Chúng tôi muốn có một loại geom khác trong khía cạnh thứ năm. Chú ý đến việc tạo ra hai phiên bản khác nhau của biến số y
, một cho bốn khía cạnh đầu tiên và một cho phần thứ năm.
dfr <- data.frame(
x = rep.int(1:10, 5),
y = runif(50),
g = gl(5, 10)
)
dfr$is.5 <- dfr$g == "5"
dfr$y.5 <- with(dfr, ifelse(is.5, y, NA))
dfr$y.not.5 <- with(dfr, ifelse(is.5, NA, y))
Nếu các geom khác nhau có thể sử dụng cùng tính thẩm mỹ (như điểm và đường) thì không phải là vấn đề.
(p1 <- ggplot(dfr) +
geom_line(aes(x, y.not.5)) +
geom_point(aes(x, y.5)) +
facet_grid(g ~ .)
)
Tuy nhiên, biểu đồ đường và biểu đồ thanh yêu cầu các khía cạnh khác nhau, do đó chúng không hoạt động như mong đợi.
(p2 <- ggplot(dfr) +
geom_line(aes(x, y.not.5)) +
geom_bar(aes(y.5)) +
facet_grid(g ~ .)
)
Trong trường hợp này, tốt hơn là vẽ hai đồ thị riêng biệt và có thể kết hợp chúng với Viewport
.
Cảm ơn Richie cho hỏi – pacomet