Bagaimana saya bisa mengetahui berapa banyak aspek yang dimiliki ggplot secara terprogram?

13

Di bawah ini adalah kode dan grafik.

Grafik memiliki tiga sisi. Di mana the_plotsaya dapat menemukannya memiliki tiga sisi? Ya, saya bisa mendapatkannya dari mtcarsbingkai data, atau the_plot$data, tetapi saya tidak ingin membuat ulang analisis data. Sebaliknya, saya ingin memeriksa elemen grafis the_plot, jadi saya tidak perlu menduplikasi logika aplikasi di banyak tempat. the_plot$facettidak menunjukkan apa pun yang saya kenal, juga variabel plot lainnya.

Saya menggunakan tidyverse 1.3.0.

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

plot segi

makan siang
sumber
Mungkin ggplot_build(the_plot)$layout$layoutdari stackoverflow.com/questions/44107119/…
MrFlick
Jangan menambahkan beberapa detail, Anda the_plotbukan apa yang Anda lihat di plot, tetapi deskripsi dari apa yang ingin Anda plot (data, pemetaan, tema, dll.). Ketika Anda menulis the_plotdi konsol, Anda benar-benar menelepon print(the_plot), yang memulai proses yang menyadari skala, jumlah dan posisi segi, dll. Dan kemudian menampilkan kotak, garis, dan teks ke perangkat grafis.
MrGumble

Jawaban:

12

Anda dapat mengakses data ggplot dengan fungsi gg_build () -

out <- ggplot_build(the_plot)

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

pengguna12256545
sumber
8

Metode lain

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

Dibuat pada 2020-04-21 oleh paket reprex (v0.3.0)

yang
sumber