program story

ggplot2에서 facet_wrap ()과 facet_grid ()의 차이점은 무엇입니까?

inputbox 2020. 12. 9. 08:07
반응형

ggplot2에서 facet_wrap ()과 facet_grid ()의 차이점은 무엇입니까?


ggplot2두 기능에 대한 문서를 읽었습니다 . 차이점이 무엇이고 각 기능 ( facet_wrap()facet_grid()) 을 사용하는 데 적합한 상황이 무엇인지 궁금합니다 .

library(ggplot2)

p <- qplot(displ, hwy, data = mpg)
p + facet_wrap(~ cyl)

p + facet_grid(~ cyl)

이 작은 예를 시작점으로 제공합니다. 차이점은 줄 바꿈으로 인해 플롯이 더 자율적으로 만들어지고 그리드는 하나의 플롯을 모두 함께 만듭니다.


아래 답변은 facet_grid()또는에 2 개의 인수가있는 경우를 나타냅니다 facet_wrap().

facet_grid(x ~ y)x*y일부 플롯이 비어 있어도 플롯 을 표시 합니다. 전의:

library(ggplot2)
g <- ggplot(mpg, aes(displ, hwy))

4 개의 개별 실린더와 7 개의 개별 클래스 값이 있습니다.

g + geom_point(alpha=1/3) + facet_grid(cyl~class)

위의 그림은 일부가 비어 있어도 4 * 7 = 28 플롯을 표시합니다 (클래스가 다른 클래스에 해당하는 실린더 값이 없기 때문입니다 (예 : class = "midsize"가있는 행에 해당 cyl = "5"값이 없음).) facet_wrap(x ~ y). 손, 실제 값이있는 플롯 만 표시합니다.

g + geom_point(alpha=1/3) + facet_wrap(cyl~class)

현재 19 개의 플롯이 표시되며, 실린더와 클래스의 모든 조합에 대해 하나씩 있습니다.


facet_wrap(...)ggplots단일 변수를 기반으로 서로 다른 프레임 (패싯)에 함께 문자열 . facet_grid(...)두 가지 변수를 사용할 수 있습니다.

p + facet_grid(cyl~class)

세 번째 변수를 사용하여 각 패싯에서 그룹화 할 수도 있습니다.

qplot(displ, hwy, data=mpg,color=factor(year)) + facet_grid(cyl~class)

# 실린더 및 등급별 배기량 대비 고속도로 마일리지의 개선 (또는 부족)을 보여줍니다.


단일 변수 그림의 경우 facet_grid()또는을 사용할 수 있습니다 facet_wrap().

facet_wrap(~variable)의 수준 수에 대해 플롯의 대칭 행렬을 반환합니다 variable.

facet_grid(.~variable)variable수평 으로 분산 된 수준과 동일한 패싯을 반환합니다 .

facet_grid(variable~.)variable수직 으로 분산 된 수준과 동일한 패싯을 반환합니다 .

참고 URL : https://stackoverflow.com/questions/20457905/whats-the-difference-between-facet-wrap-and-facet-grid-in-ggplot2

반응형