ggplot2로 R에서 시각화하기

SAS 사용자를 위한 R

Melinda Higgins, PhD

Research Professor/Senior Biostatistician Emory University

ggplot2 패키지

ggplot2 헥스스티커 로고

  • ggplot2는 R의 강력한 그래픽 패키지입니다
  • ggplot의 "GG"는 "그래머 오브 그래픽스"를 뜻함
  • ggplot2는 레이어링 방식으로 그래프를 만듭니다
  • 하나 이상의 지오메트릭 오브젝트를 기본 레이어에 추가
SAS 사용자를 위한 R

레이어 - 기본 레이어

# x=sex, y=diameter 플롯 생성
ggplot(data = abalone, aes(sex, diameter))
  • ggplot()으로 기본 레이어 정의
  • data = abalone 설정
  • aessex, diameter로 설정

  • 아직 그래픽 오브젝트 없음

  • x축은 sex 준비
  • y축은 diameter 준비
  • 그리드 배치 완료

ggplot2 그래픽 환경(박스플롯 전)

SAS 사용자를 위한 R

레이어 - 박스플롯 geom 추가

# 박스플롯 지오메트릭 오브젝트(geom) 추가
ggplot(data = abalone,
       aes(sex, diameter)) +
  geom_boxplot()
  • + 연산자로 레이어 추가
  • 박스플롯 geom_boxplot() 추가

  • 결과는 박스플롯 모음

  • 성별별 전복 지름
  • F 암컷, I 유체, M 수컷

ggplot2 박스플롯 추가됨

SAS 사용자를 위한 R

레이어 - 테마 추가

# 흑백 테마 추가
ggplot(data = abalone,
       aes(sex, diameter)) +
  geom_boxplot() +
  theme_bw()
  • theme_bw()로 테마 레이어 추가
  • 회색 배경 제거
  • 플롯에 검정 테두리 추가

ggplot2 박스플롯 흑백 테마

SAS 사용자를 위한 R

박스플롯 지옴을 바이올린 지옴으로 변경

# geom_violin()으로 변경
ggplot(data = abalone,
       aes(sex, diameter)) +
  geom_violin() +
  theme_bw()
  • geom_violingeom_boxplot을 대체합니다
  • 바이올린과 유사한 형태 생성
  • 데이터 밀도 분포를 반영
  • 간단히 바꿔 새 그림 생성

ggplot2 바이올린 플롯

SAS 사용자를 위한 R

단일 변수 히스토그램

# shuckedWeight의 히스토그램 만들기
ggplot(abalone, aes(shuckedWeight)) +
  geom_histogram()
  • 단일 변수 히스토그램 생성
  • 한 변수 = 한 미학(aes)
  • geom_histogram() 추가
  • aes()shuckedWeight로 설정
  • 기본 색상은 변경 필요

ggplot2 히스토그램(검정)

SAS 사용자를 위한 R

히스토그램에 색 추가

# 선은 검정, 채우기는 연한 파랑
ggplot(abalone, aes(shuckedWeight)) +
  geom_histogram(color = "black",
                 fill = "lightblue")
  • 그래픽 매개변수 변경
  • 구간선 color 설정
  • 구간 fill 색 설정
  • 각 옵션은 () 안에 설정
  • 시각적으로 더 나아짐

ggplot2 히스토그램(파란 막대, 검정 윤곽)

SAS 사용자를 위한 R

히스토그램에 제목과 축 라벨 추가

# x, y 축 라벨과 제목 추가
ggplot(abalone, aes(shuckedWeight)) +
  geom_histogram(color = "black",
                 fill = "lightblue") +
  xlab("Shucked Weight") +
  ylab("Frequency Counts") +
  ggtitle("Shucked Weights Histogram")
  • 축 라벨과 제목을 더 명확히 추가
  • 축에는 xlab(), ylab() 사용
  • 제목에는 ggtitle() 사용
  • 게시할 준비가 된 그림

ggplot2 히스토그램 축 라벨과 제목 추가

SAS 사용자를 위한 R

산점도 만들기

# geom_point()로 산점도 만들기
ggplot(abalone,
       aes(rings, shellWeight)) +
  geom_point()
  • 산점도 aes에는 두 변수가 필요
  • geom_point()가 점을 추가
  • 고리 수별 껍질 무게 산점도

ggplot2 산점도: rings별 shellWeight

SAS 사용자를 위한 R

산점도에 스무딩 선 추가

# 스무딩 추세선 추가
ggplot(abalone,
       aes(rings, shellWeight)) +
  geom_point() +
  geom_smooth()
  • 산점도에 geom_smooth() 선 추가
  • 신뢰구간 음영 포함

ggplot2 산점도(스무딩 선 포함)

SAS 사용자를 위한 R

다른 변수로 패널 만들기

# facet_wrap()으로 패널 추가
ggplot(abalone,
       aes(rings, shellWeight)) +
  geom_point() +
  geom_smooth() +
  facet_wrap(vars(sex))
  • 산점도에 레이어 하나 더 추가
  • 전복 성별별 패널 생성
  • facet_wrap() 레이어 추가
  • vars(sex)가 패널 변수 지정

ggplot2 산점도: 성별 3개 패널

SAS 사용자를 위한 R

이후 강의 구성

  • 1장은 그래픽 기초를 다룹니다
    • ggplot2 그래픽 기본기
    • 성별로 전복 측정값 시각화
  • 2장은 데이터 전처리 학습
    • 전복 데이터 정리
  • 3장은 탐색적 분석 학습
    • 기술통계, 상관, 비교 검정
  • 4장은 모델링과 결과 제시 학습
    • 측정값으로 전복 나이 예측
    • 성별별 모델 탐색
SAS 사용자를 위한 R

전복 데이터를 그래프로 그려봅시다

SAS 사용자를 위한 R

Preparing Video For Download...