[R4DS] [1-3] Facet

2024. 3. 29. 00:53· DS Study/R4DS(R언어)
목차
  1. 1. facet
  2. 2. facet_wrap() #하나의 변수
  3. 3.facet_grid() #두 변수 조합
  4. 4. 연습문제

1. facet

- https://ceulkun04.tistory.com/6

 

[R언어] [2] 심미성 매핑

1. 심미성 매핑 "그래프의 가장 큰 가치는 전혀 예상하지 못한 것을 보여줄 때이다." - 죤 튜키 https://ceulkun04.tistory.com/5 (R언어 [1] 강에서 displ과 hwy의 연관성을 비교해서 나타낸 산점도를 다시보자

ceulkun04.tistory.com

- 2장에선 변수를 추가하는 방법으로 심미성을 이용하는 방법에 대해 알아보았다.

- 또 다른 변수 추가 방법을 소개하고자 한다.

- 범주형 변수에 특히 유용한 방법 -> 플롯을 면분할(Facet)으로 나누는 것

 

2. facet_wrap() #하나의 변수

- facet_wrap()의 첫 번째 인수로는 ~와 뒤에 변수 이름이 따라오는 공식(formula)이어야 함

- facet_wrap()에 전달하는 변수는 이산형이어야한다.

- ex)

ggplot(data = mpg) + 
     geom_point(mapping = aes(x = displ, y = hwy)) + 
     facet_wrap(~class, nrow = 3)

facet_wrap(~class, nrow = 3) 
# ~class : class를 기준으로 분리
# nrow = 3 : 행을 3개로 분리

3.facet_grid() #두 변수 조합

- facet_grid()의 첫 번째 인수도 정형화되어 있다.

- facet_grid('행을 구분할 인수' ~ '열을 구분할 인수')

-ex) 

> ggplot(data = mpg) + 
     geom_point(mapping = aes(x = displ, y = hwy), color = 'blue') + 
     facet_grid(drv ~ cyl)

- 열이나 행으로 면분할하고 싶지 않다면 변수 이름 대신 .을 이용하면 됨.

ex)

ggplot(data = mpg) + 
     geom_point(mapping = aes(x = displ, y = hwy)) + 
     facet_wrap(drv ~ .)

 

4. 연습문제

Q1) 연속형 변수로 면분할하면 어떻게 되는가?

- mpg dataset에 존재하는 연속형 변수는 3가지

----> displ, hwy, cty

- code : 

ggplot(data = mpg) + 
     geom_point(mapping = aes(x = displ, y = hwy)) + 
     facet_wrap(~cty, nrow = 2)

 

--면분할은 가능하지만 연속하는 값들마다 분리되기에 의미있진 않다. 

 

Q2) facet_grid(drv ~ cyl)로 만든 플롯에 있는 빈 셀들은 무엇을 의미하는가? 다음의 플롯과 어떻게 연관되는가

- 다음의 플롯 :

ggplot(data = mpg) + 
	geom_point(mapping = aes(x = drv , y = cyl))

- facet_grid로 만든 플롯에 있는 빈 셀들은 해당되는 data가 없음을 의미한다.

- 밑의 Plot은 다음의 플롯을 보여준다.

- 해당 플롯도 마찬가지로 비어있는 데이터 즉(4,5) , (r,5)를 보여준다는 점이 연관되어 있다.

 

Q3) 다음의 코드는 어떤 플롯을 만드는가? .은 어떤 역할을 하는가?

# 1번 코드

ggplot(data = mpg) + 
     geom_point(mapping = aes(x = displ, y = hwy)) + 
     facet_wrap(drv ~ .)

# 2번 코드 

 ggplot(data = mpg) + 
     geom_point(mapping = aes(x = displ, y = hwy)) + 
     facet_grid(.~cyl)

- 해당 플롯들을 보면 알수있듯 하나의 열 or 하나의 행으로 분할하고 싶을 때 '.'을 활용할수있다.

 

Q4) 이 절의 면분할된 첫 번째 플롯을 살펴보라. Q4-1)색상 심미성을 쓰지 않고 면분할하면 어떤 이점이 있는가? Q4-2)단점은 무엇인가?
Q4-3)데이터가 더 크다면 이 균형은 어떻게 바뀌겠는가?

ggplot(data = mpg) + 
    geom_point(mapping = aes(x = displ, y = hwy)) + 
    facet_wrap(~ class , nrow = 2)

- Q4-1) 색상 심미성을 쓰지 않고 면분할을 하면 생기는 이점은 class의 종류에 따라 displ,hwy의 연관성이 한눈에 들어오게 된다. 

- Q4-2) 각각의 class에 대해서 개별적으로 분석하긴 쉽지만 각 class를 비교할 때 어려움을 느낀다.

- Q4-3) 데이터가 더 크다면 각각의 class에 대한 분석이 더욱 한눈에 들어올듯하다.

 

Q5)  ?facet_wrap을 읽어라. Q5-1) nrow의 역할은 무엇인가? Q5-2)ncol의 역할은 무엇인가? Q5-3)개별 패널의 배치를 조정할 수 있는 다른 방법은 무엇인가? Q5-4) facet_grid()에는 nrow, ncol 인수가 왜 없는가? 

Q5-1) nrow : 행의 개수를 결정해준다.

Q5-2) ncol : 열의 개수를 결정해준다. 

Q5-3) 개별 패널의 배치를 조정할 수 있는 다른 방법 : facet_grid() 함수를 사용하여 행 및 열을 특정 변수로 분할하여 패널 생성 가능

- scales 매개변수를 사용하여 각 패널의 축 스케일을 독립적으로 조정할 수도 있음

Q5-4) facet_grid()에서는 행,열을 특정 변수에 따라 분리하기 때문.

'DS Study > R4DS(R언어)' 카테고리의 다른 글

[R4DS] [1-6] 위치 조정  (0) 2024.03.30
[R4DS] [1-5] 통계적 변환  (0) 2024.03.30
[R4DS] [1-4] 기하 객체 (Geom 함수 정리)  (0) 2024.03.30
[R4DS] [1-2] 심미성 매핑  (0) 2024.03.27
[R4DS] [1-1] ggplot2 이란?  (2) 2024.03.27
  1. 1. facet
  2. 2. facet_wrap() #하나의 변수
  3. 3.facet_grid() #두 변수 조합
  4. 4. 연습문제
'DS Study/R4DS(R언어)' 카테고리의 다른 글
  • [R4DS] [1-5] 통계적 변환
  • [R4DS] [1-4] 기하 객체 (Geom 함수 정리)
  • [R4DS] [1-2] 심미성 매핑
  • [R4DS] [1-1] ggplot2 이란?
23학번이수현
23학번이수현
23학번이수현
밑바닥부터 시작하는 AI보안전문가
23학번이수현
전체
오늘
어제
  • 분류 전체보기 (243)
    • Statistic Study (47)
      • Mathematical Statistics(수리통.. (47)
    • Mathematics Study (15)
      • Linear Algebra (선형대수학) (15)
    • CS Study (74)
      • CLRS (자료구조 | 알고리즘) (49)
      • Database(DB) (11)
      • C++ (11)
      • 컴퓨터 구조 (2)
      • MongoDB (1)
    • DS Study (56)
      • CS 229(Machine Learning) (19)
      • CS 224n(NLP) (5)
      • Web Scraping (7)
      • R4DS(R언어) (20)
      • 밑바닥부터 시작하는 딥러닝 1 (5)
    • Hacking Study (0)
      • Web Hacking (0)
    • 코딩테스트 (5)
      • 백준-Python (5)
    • Paper Review(논문 리뷰) (43)
      • Deep Learning (16)
      • TCGA 관련 논문 (4)
      • Computer Vision (18)
      • NLP (5)

블로그 메뉴

  • 홈
  • 태그
  • 방명록

공지사항

인기 글

태그

  • 선형대수학
  • 정렬
  • R언어
  • cs 224n
  • introduction to algoritmhs
  • C++
  • 파이썬
  • db
  • Linear Algebra
  • deep learning
  • 딥러닝
  • web scraping
  • NLP
  • Data Structure
  • AI
  • LSTM
  • 자료구조
  • 시간복잡도
  • 수리통계학
  • 백준
  • 논문 리뷰
  • Algorithms
  • Machine Learning
  • R4DS
  • Introduction to Algorithms
  • 알고리즘
  • graph
  • clrs
  • 데이터분석
  • cs229

최근 댓글

최근 글

hELLO · Designed By 정상우.v4.2.2
23학번이수현
[R4DS] [1-3] Facet
상단으로

티스토리툴바

단축키

내 블로그

내 블로그 - 관리자 홈 전환
Q
Q
새 글 쓰기
W
W

블로그 게시글

글 수정 (권한 있는 경우)
E
E
댓글 영역으로 이동
C
C

모든 영역

이 페이지의 URL 복사
S
S
맨 위로 이동
T
T
티스토리 홈 이동
H
H
단축키 안내
Shift + /
⇧ + /

* 단축키는 한글/영문 대소문자로 이용 가능하며, 티스토리 기본 도메인에서만 동작합니다.