Làm thế nào tôi có thể lập trình cho biết một ggplot có bao nhiêu khía cạnh?


13

Dưới đây là mã và một biểu đồ.

Biểu đồ có ba khía cạnh. the_plotTôi có thể tìm thấy nó ở đâu trong ba khía cạnh? Có, tôi có thể lấy nó từ mtcarskhung dữ liệu, hoặc the_plot$data, nhưng tôi không muốn tạo lại phân tích dữ liệu. Thay vào đó, tôi muốn kiểm tra các yếu tố đồ họa của the_plot, vì vậy tôi không phải sao chép logic ứng dụng ở nhiều nơi. the_plot$facetkhông hiển thị bất cứ điều gì tôi nhận ra, cũng như các biến cốt truyện khác.

Tôi đang sử dụng tidyverse 1.3.0.

library(tidyverse)
data(mtcars)
the_plot<-ggplot(mtcars, aes(mpg, disp, group=cyl)) + facet_wrap(~cyl) + geom_point()
the_plot

cốt truyện mặt


Có thể ggplot_build(the_plot)$layout$layouttừ stackoverflow.com/questions/44107119/
Mạnh

Hãy thêm một số chi tiết, the_plotđây không phải là những gì bạn thấy trong cốt truyện, mà là một mô tả về những gì bạn muốn được vẽ (dữ liệu, ánh xạ, chủ đề, v.v.). Khi bạn viết the_plottrong bảng điều khiển, bạn thực sự đang gọi print(the_plot), bắt đầu một quá trình nhận ra tỷ lệ, số lượng và vị trí của các mặt, v.v. và sau đó xuất các hộp, đường và văn bản sang thiết bị đồ họa.
MrGumble

Câu trả lời:


12

bạn có thể truy cập dữ liệu ggplot bằng hàm gg_build () -

out <- ggplot_build(the_plot)

length(levels(out$data[[1]]$PANEL))
[1] 3


8

Một phương pháp khác

library(ggplot2)
data(mtcars)
the_plot<-ggplot(mtcars, aes(mpg, disp, group=cyl)) + facet_wrap(~cyl) + geom_point()
pb <- ggplot_build(the_plot)
pb$layout$layout$PANEL
#> [1] 1 2 3
#> Levels: 1 2 3

Được tạo vào ngày 2020-04-21 bởi gói reprex (v0.3.0)

Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.