[r] ggplot의 패싯 수를 프로그래밍 방식으로 어떻게 알 수 있습니까?

아래는 코드와 그래프입니다.

그래프에는 세 가지 측면이 있습니다. the_plot3 개의 패싯이있는 곳은 어디 입니까? 예, 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

패싯 플롯



답변

gg_build ()-함수를 사용하여 ggplot 데이터에 액세스 할 수 있습니다

out <- ggplot_build(the_plot)

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


답변

다른 방법

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

reprex 패키지 (v0.3.0)로 2020-04-21에 작성


답변