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


13

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

그래프에는 세 가지 측면이 있습니다. 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

패싯 플롯


아마도 ggplot_build(the_plot)$layout$layout에서 stackoverflow.com/questions/44107119/...
MrFlick

몇 가지 세부 사항을 추가 the_plot하십시오. 플롯에서 보는 것이 아니라 플롯하려는 대상에 대한 설명 (데이터, 매핑, 테마 등)입니다. the_plot콘솔에서 쓸 때 실제로 호출 print(the_plot)하고 있는데, 이것은 패싯의 스케일, 수 및 위치 등을 실현 한 다음 상자, 선 및 텍스트를 그래픽 장치로 출력하는 프로세스를 시작합니다.
MrGumble

답변:


12

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

out <- ggplot_build(the_plot)

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

8

다른 방법

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에 작성

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.