ggplot2를 사용한 R 그래픽 시각화

SAS 사용자를 위한 R

Melinda Higgins, PhD

Research Professor/Senior Biostatistician Emory University

ggplot2 패키지

ggplot2 hexsticker 로고

  • ggplot2는 R을 위한 강력한 그래픽 패키지입니다
  • ggplot의 "GG"는 "grammar of graphics"(그래픽 문법)를 의미합니다
  • ggplot2는 레이어를 쌓는 방식으로 그래픽을 만듭니다
  • 기본 그래픽 레이어에 하나 이상의 기하 객체를 추가합니다
SAS 사용자를 위한 R

레이어 - 기본 레이어

# Create plot for x=sex and y=diameter
ggplot(data = abalone, aes(sex, diameter))
  • ggplot()로 기본 레이어를 정의합니다
  • data = abalone로 설정합니다
  • aessexdiameter로 설정합니다

  • 아직 플롯에 그래픽 객체가 없습니다

  • x축은 sex를 표시할 준비가 되었습니다
  • y축은 diameter를 표시할 준비가 되었습니다
  • 그리드가 배치되었습니다

박스플롯이 아직 없는 ggplot2 그래픽 환경

SAS 사용자를 위한 R

레이어 - 박스플롯 geom 추가

# Add boxplot geometric object or geom
ggplot(data = abalone,
       aes(sex, diameter)) +
  geom_boxplot()
  • 더하기 연산자 +로 레이어를 추가합니다
  • 박스플롯 geom_boxplot()을 추가했습니다

  • 결과는 일련의 박스플롯입니다

  • 성별에 따른 전복 지름
  • F는 암컷, I는 유생, M은 수컷을 의미합니다

ggplot2 박스플롯 추가

SAS 사용자를 위한 R

레이어 - 테마 추가

# Add black white theme
ggplot(data = abalone,
       aes(sex, diameter)) +
  geom_boxplot() +
  theme_bw()
  • theme_bw()로 "테마" 레이어를 추가합니다
  • 회색 배경을 제거합니다
  • 플롯 주위에 검은색 테두리를 그립니다

ggplot2 박스플롯에 흑백 테마 추가

SAS 사용자를 위한 R

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

# Change to geom_violin()
ggplot(data = abalone,
       aes(sex, diameter)) +
  geom_violin() +
  theme_bw()
  • geom_violingeom_boxplot을 대체합니다
  • 바이올린과 비슷한 모양을 만듭니다
  • 데이터 밀도 분포를 반영합니다
  • 간단한 변경만으로 새로운 그림을 만듭니다

ggplot2 바이올린 플롯

SAS 사용자를 위한 R

단일 변수 히스토그램

# Make histogram of shuckedWeight
ggplot(abalone, aes(shuckedWeight)) +
  geom_histogram()
  • 변수 하나에 대한 히스토그램을 만듭니다
  • 변수 하나 = 심미성(aesthetic) 하나
  • geom_histogram()을 추가합니다
  • aes()shuckedWeight로 설정합니다
  • 기본 색상을 변경해야 합니다

ggplot2 검은색 히스토그램

SAS 사용자를 위한 R

히스토그램에 색상 추가

# Make lines black and fill light blue
ggplot(abalone, aes(shuckedWeight)) +
  geom_histogram(color = "black",
                 fill = "lightblue")
  • 그래픽 매개변수를 변경합니다
  • 구간(bin) 선의 color를 설정합니다
  • 구간의 fill 색상을 설정합니다
  • 각 옵션은 () 안에 설정합니다
  • 히스토그램이 훨씬 보기 좋아졌습니다

파란색 막대와 검은색 테두리 선이 있는 ggplot2 히스토그램

SAS 사용자를 위한 R

히스토그램에 제목과 축 레이블 추가

# Add x, y axis labels and title
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

산점도 만들기

# Make scatterplot with geom_point()
ggplot(abalone,
       aes(rings, shellWeight)) +
  geom_point()
  • 산점도의 aes에는 변수 두 개가 필요합니다
  • geom_point()가 점을 추가합니다
  • 나이테에 따른 껍데기 무게 산점도

나이테에 따른 껍데기 무게를 나타낸 ggplot2 산점도

SAS 사용자를 위한 R

산점도에 평활 적합선 추가

# Add smoothed fit line
ggplot(abalone,
       aes(rings, shellWeight)) +
  geom_point() +
  geom_smooth()
  • 산점도에 geom_smooth() 선을 추가합니다
  • 음영 처리된 신뢰 구간이 포함됩니다

평활 적합선이 추가된 ggplot2 산점도

SAS 사용자를 위한 R

다른 변수로 패널 만들기

# Add panels using facet_wrap()
ggplot(abalone,
       aes(rings, shellWeight)) +
  geom_point() +
  geom_smooth() +
  facet_wrap(vars(sex))
  • 산점도에 레이어를 하나 더 추가합니다
  • 전복 성별마다 패널을 만듭니다
  • facet_wrap() 레이어를 추가합니다
  • vars(sex)가 패널을 나눌 변수를 정의합니다

성별에 따라 3개 패널로 나뉜 ggplot2 산점도

SAS 사용자를 위한 R

이후 강의 내용

  • 1장은 그래픽 소개로 마무리합니다
    • ggplot2 그래픽 기술 기초
    • 성별에 따른 전복 측정값 시각화
  • 2장에서는 데이터 정제 기술을 배웁니다
    • 전복 데이터셋 정리하기
  • 3장에서는 데이터 탐색 방법을 배웁니다
    • 기술 통계, 상관관계, 비교 검정
  • 4장에서는 모델링과 결과 발표를 배웁니다
    • 측정값으로 전복 나이 예측하기
    • 성별에 따른 모델 탐색하기
SAS 사용자를 위한 R

전복 데이터로 플롯을 만들어 봅시다

SAS 사용자를 위한 R

Preparing Video For Download...