Как я могу программно определить, сколько аспектов у ggplot?

13

Ниже приведен код и график.

График имеет три аспекта. Где the_plotя могу найти это имеет три аспекта? Да, я мог бы получить это из mtcarsфрейма данных, или the_plot$data, но я не хочу воссоздавать анализ данных. Скорее, я хочу проверить графические элементы the_plot, поэтому мне не нужно дублировать логику приложения в нескольких местах. the_plot$facetне показывает ничего, что я узнаю, как и другие переменные графика.

Я использую Tidyverse 1.3.0.

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

граненый сюжет

dfrankow
источник
Возможно, ggplot_build(the_plot)$layout$layoutот stackoverflow.com/questions/44107119/…
MrFlick
Добавьте некоторые детали, the_plotэто не то, что вы видите на графике, а описание того, что вы хотите построить (данные, отображение, тема и т. Д.). Когда вы пишете the_plotв консоли, вы действительно звоните print(the_plot), что запускает процесс, который реализует масштабы, количество и положение граней и т. Д., А затем выводит поля, строки и текст на графическое устройство.
MrGumble

Ответы:

12

Вы можете получить доступ к данным ggplot с помощью функции gg_build ()

out <- ggplot_build(the_plot)

length(levels(out$data[[1]]$PANEL))
[1] 3
user12256545
источник