728x90
반응형
1.5 facet
facet_wrap()
- 변수를 추가하는 방법으로 심미성을 이용하는 방법 외에 플롯을 면분할(facet)로 나누는 것으로, 이는 범주형 변수에 특히 유용하다.
- 하나의 변수에 대해 면분할 하기 위해서는 facet_wrap() 을 이용한다.
- facet_wrap() 의 첫 번째 인수로는 ~와 뒤에 변수 이름이 나오는 공식이어야 하며,
- facet_wrap() 에 전달하는 변수는 이산형이어야 한다.
ggplot(data = mpg)+
geom_point(mapping = aes(x = displ, y = hwy)) +
facet_wrap(~ class, nrow = 2)
facet_grid()
- 플롯을 두 변수 조합으로 면분할하기 위해서는 facet_wrap() 를 플롯 호출에 추가하면 된다.
facet_grid() 의 첫 번째 인수도 정형화되어 있다.
ggplot(data = mpg) +
geom_point(mapping = aes(x = displ, y = hwy)) +
facet_grid(drv ~ cyl)
- 열이나 행으로 면분할하고 싶지 않으면 변수 이름 대신 . 을 이용한다
ggplot(data = mpg) +
geom_point(mapping = aes(x = displ, y = hwy)) +
facet_grid(. ~ cyl)
연습문제
1. 연속형 변수로 면분할하면 어떻게 되는가?
- 연속하는 값들 마다 면 분할된다. 따라서 연속형변수로 면분할 하는것은 의미가 없다
2. facet_grid(drv ~ cyl) 로 만든 플롯에 있는 빈 셀들은 무엇을 의미하는가?다음 플롯과 어떻게 연관되는가?
ggplot(data = mpg) +
geom_point(mapping = aes(x = drv, y = cyl))
- 해당 drv값, cyl 값을 만족하는 데이터가 없음을 의미한다.
- drv, cyl 모두 명목형 변수이기 때문에 위 코드의 그래프를 그리면 점이 찍히지 않은 곳이 있다. 그 점이 비어있는 이유는 데이터가 없기 때문이다.
3. 다음의 코드는 어떤 플롯을 만드는가? . 은 어떤 역할을 하는가?
ggplot(data = mpg) +
geom_point(mapping = aes(x = displ, y = hwy)) +
facet_grid(drv ~ .)
ggplot(data = mpg) +
geom_point(mapping = aes(x = displ, y = hwy)) +
facet_grid(. ~ cyl)
- 첫 번째 코드는 drv 변수를 행 기준으로 면분할 하고, 두 번째 코드는 cyl 변수를 열 기준으로 면분할 한다. 여기서 . 는 행 또는 열 분할만을 할 때 사용한다.
4. 이 절의 면분할된 첫 번째 플롯을 살펴보라
ggplot(data = mpg) +
geom_point(mapping = aes(x = displ, y = hwy)) +
facet_wrap(~ class, nrow = 2)
색상 심미성을 쓰지 않고 면분할 하면 어떤 이점이 있는가? 단점은 무엇인가? 데이터가 더 크다면 이 균형을 어떻게 바뀌겠는가?
5. ?facet_wrap 을 읽어라. nrow 과 ncol 의 역할은 무엇인가?개별 패널의 배치를 조정할 수 있는 다른 방법은 무엇인가?facet_grid 에는 nrow , ncol 인수가 왜 없는가?
facet_wrap() wraps a 1d sequence of panels into 2d. This is generally a better use of screen space than facet_grid() because most displays are roughly rectangular.
- facet_wrap()은 1d 패널 시퀀스를 2d로 래핑한다. 대부분의 디스플레이가 대략 직사각형이기 때문에 일반적으로 facet_grid()보다 화면 공간을 더 잘 사용한다.
- ncol과 nrow는 분할 할 면의 열, 행의 수를 의미한다.
6. facet_grid() 를 사용할 때, 대개의 경우 고유 수준이 더 많은 변수를 열로 두어야 한다. 왜인가?
- 그래프는 주로 세로로 길게 나타낸다. 따라서 고유 수준이 더 많은 변수를 열로 두어야 행의 수가 줄어들어 그래프가 세로로 길게 나타낼 수 있다.
728x90
반응형
'Study > R' 카테고리의 다른 글
[R4DS] 1장 데이터 시각화 - 06 위치조정 (0) | 2022.01.10 |
---|---|
[R4DS] 1장 데이터 시각화 - 05 통계적 변환 (0) | 2022.01.10 |
[R4DS] 1장 데이터 시각화 - 04 기하객체 (0) | 2022.01.10 |
[R4DS] 1장 데이터 시각화 - 02 심미성 매핑 (0) | 2021.11.16 |
[R4DS] 1장 데이터 시각화 - 01 첫 단계 (0) | 2021.11.16 |