패싯 레이블과 순서

ggplot2로 하는 중급 데이터 시각화

Rick Scavetta

Founder, Scavetta Academy

새로운 데이터프레임

# Plot
p <- ggplot(msleep2, aes(bodywt_log,
                         brainwt_log)) +
  geom_point(alpha = 0.6, shape = 16) +
  coord_fixed()

p

ggplot2로 하는 중급 데이터 시각화

새로운 데이터프레임, 패싯 포함

p +
  facet_grid(rows = vars(vore))

ggplot2로 하는 중급 데이터 시각화

새로운 데이터프레임, 패싯 포함

p +
  facet_grid(rows = vars(vore))

ggplot2로 하는 중급 데이터 시각화

불량한 레이블과 순서

p +
  facet_grid(rows = vars(vore))

패싯의 일반적인 문제:

  • 레이블이 불명확함 (예: 설명 부족)
  • 잘못되거나 부적절한 순서

ggplot2로 하는 중급 데이터 시각화

불량한 레이블과 순서

p +
  facet_grid(rows = vars(vore))

해결 방법:

  • 간단: ggplot에서 레이블 추가
  • 더 나음: 데이터프레임에서 팩터 변수 재레이블링 및 재정렬

ggplot2로 하는 중급 데이터 시각화

labeller 인수

# Default is to label the value
p +
  facet_grid(rows = vars(vore), 
             labeller = label_value)

ggplot2로 하는 중급 데이터 시각화

label_both은 변수 이름을 추가함

# Print variable name also
p +
  facet_grid(rows = vars(vore), 
               labeller = label_both)

ggplot2로 하는 중급 데이터 시각화

한쪽에 두 변수 사용

p +
  facet_grid(rows = vars(vore, 
                         conservation))

ggplot2로 하는 중급 데이터 시각화

label_context로 모호함 방지

p +
  facet_grid(rows = vars(vore,
                         conservation),
               labeller = label_context)

ggplot2로 하는 중급 데이터 시각화

필요 시 행과 열 활용

p +
  facet_grid(rows = vars(vore), 
             cols = vars(conservation),
             labeller = label_context)

ggplot2로 하는 중급 데이터 시각화

필요 시 행과 열 활용

p +
  facet_grid(rows = vars(vore), 
             cols = vars(conservation))

ggplot2로 하는 중급 데이터 시각화

필요 시 행과 열 활용

ggplot2로 하는 중급 데이터 시각화

팩터 재레이블링 및 재정렬

msleep2$conservation <- fct_recode(msleep2$conservation,
                                   Domesticated = "domesticated",
                                   `Least concern` = "lc",
                                   `Near threatened` = "nt",
                                   Vulnerable = "vu",
                                   Endangered = "en")

msleep2$vore = fct_recode(msleep2$vore,
                          Carnivore = "carni",
                          Herbivore = "herbi",
                          Insectivore = "insecti",
                          Omnivore = "omni")
ggplot2로 하는 중급 데이터 시각화

새 레이블로 플롯 재초기화

# Plot
p <- ggplot(msleep2, aes(bodywt_log,
                         brainwt_log)) +
  geom_point(alpha = 0.6, shape = 16) +
  coord_fixed()

p +
  facet_grid(rows = vars(vore), 
             cols = vars(conservation)) 

ggplot2로 하는 중급 데이터 시각화

새 레이블로 플롯 재초기화

ggplot2로 하는 중급 데이터 시각화

수준 순서 변경

# Change order of levels:
msleep2$conservation = fct_relevel(msleep2$conservation,
                                   c("Domesticated",
                                     "Least concern",
                                     "Near threatened",
                                     "Vulnerable",
                                     "Endangered"))

ggplot2로 하는 중급 데이터 시각화

새 순서로 플롯 재초기화

ggplot2로 하는 중급 데이터 시각화

연습해 봅시다!

ggplot2로 하는 중급 데이터 시각화

Preparing Video For Download...