ggplot은 R에서 데이터 시각화를 위해 가장 널리 사용되는 패키지 중 하나입니다. facet_wrap
과 facet_grid
는 ggplot의 핵심 기능 중 하나로, 여러 개의 그래프를 한 번에 생성하는 데 사용됩니다. 이를 통해 데이터의 다양한 요소를 쉽게 비교 및 시각화할 수 있습니다.
facet_wrap
먼저 facet_wrap
함수를 살펴보겠습니다. 이 함수는 데이터를 지정한 변수(예: 범주형 변수)로 쪼개어 한 번에 여러 개의 패널에 그래프를 표시합니다.
ggplot(data, aes(x = x_var, y = y_var)) +
geom_bar() +
facet_wrap(~ facet_var)
위의 코드에서 data
는 그래프를 생성할 데이터 프레임을 나타내며, x_var
와 y_var
는 x축과 y축에 사용할 변수입니다. geom_bar()
는 막대 그래프를 생성하는 함수이며, facet_wrap(~ facet_var)
는 facet_var
로 지정된 변수를 기준으로 패널을 생성합니다.
facet_grid
facet_grid
함수는 facet_wrap
와 유사하지만, 그래프를 생성할 때 2개 이상의 변수를 조합하여 그리드 형태로 패널을 생성합니다.
ggplot(data, aes(x = x_var, y = y_var)) +
geom_point() +
facet_grid(row_var ~ column_var)
위의 코드에서 row_var
와 column_var
는 그리드 형태로 패널을 생성할 변수를 나타냅니다. geom_point()
는 점 그래프를 생성하는 함수입니다.
예시
이제 예시를 통해 facet_wrap
과 facet_grid
의 활용을 살펴보겠습니다. 아래의 코드는 ‘mpg’ 데이터셋에서 자동차의 연비(mpg)를 제조 회사(manufacturer)와 자동차 유형(class)에 따라 비교하는 그래프를 그립니다.
ggplot(mpg, aes(x = manufacturer, y = hwy)) +
geom_boxplot() +
facet_wrap(~ class, scales = "free_y")
위의 코드에서 mpg
는 ‘ggplot2’ 패키지에 기본으로 포함된 데이터셋입니다. geom_boxplot()
은 상자 그림을 생성하는 함수이며, scales = "free_y"
는 y축 스케일을 패널별로 자유롭게 조정하도록 지정합니다. 이를 통해 각 패널을 통해 연비의 분포를 비교할 수 있습니다.
결론
ggplot의 facet_wrap
과 facet_grid
는 데이터의 다양한 요소를 한 번에 시각화할 수 있는 강력한 기능입니다. 이를 활용하여 여러 개의 패널에 그래프를 나눠서 표시하면, 데이터 간의 비교와 관계 파악이 더욱 용이해집니다.