본문 바로가기
IT

RColorBrewer Palette로 시각화 색상 마스터하기!

by 굿센스굿 2025. 2. 28.
반응형

순차적·발산형·범주형 완벽 가이드

데이터 시각화를 하다 보면, “어떤 색상을 써야 더 잘 보일까?”라는 고민에 빠지곤 하죠. 특히 R을 사용하시는 분이라면 이 고민이 더욱 실감 날 겁니다. 하지만 걱정 마세요! 오늘은 RColorBrewer Palette를 활용해 데이터에 생동감을 불어넣는 방법을 알려드리겠습니다.

순차적(Sequential), 발산형(Diverging), 범주형(Qualitative) 팔레트의 차이와 활용법까지 모두 다룰 예정이니 끝까지 읽어보세요. 이 글을 읽고 나면 데이터 시각화가 한층 더 재미있어질 거예요!


1. RColorBrewer Palette란?

RColorBrewer는 R에서 제공하는 색상 팔레트 패키지로, 데이터 시각화를 위한 다양한 색상 조합을 제공합니다. 특히, 순차적(Sequential), 발산형(Diverging), 범주형(Qualitative) 팔레트를 제공하여 데이터의 특성에 맞는 색상을 손쉽게 선택할 수 있죠.

R Color Brewer’s Palettes 종류

  • 순차적 팔레트 (Sequential): 데이터가 낮은 값에서 높은 값으로 진행될 때 적합
  • 발산형 팔레트 (Diverging): 중간값을 기준으로 양 극단의 값을 강조할 때 유용
  • 범주형 팔레트 (Qualitative): 서로 다른 범주를 구분하기에 적합

2. 팔레트 유형과 특징

2-1. 순차적 팔레트 (Sequential)

  • 특징: 낮은 값에서 높은 값으로 진행되는 데이터를 표현할 때 적합합니다.
  • 예시: 온도 변화, 매출 증가 등 연속적인 수치 데이터
  • 팔레트 목록 (총 18개):
    Blues, BuGn, BuPu, GnBu, Greens, Greys, Oranges, OrRd, PuBu, PuBuGn, PuRd, Purples, RdPu, Reds, YlGn, YlGnBu, YlOrBr, YlOrRd

✔️ 활용법

아래 코드를 통해 순차적 팔레트의 색상을 확인할 수 있습니다:

library(RColorBrewer)
display.brewer.pal(n = 9, name = "Blues")

🔍 예시 이미지

RColorBrewer Palette - 순차적 팔레트 예시 이미지
(Blues 팔레트가 점진적으로 어두워지며 높은 값을 강조)


2-2. 발산형 팔레트 (Diverging)

  • 특징: 중간값을 기준으로 양 극단의 값을 강조할 때 사용합니다.
  • 예시: 기온 변화(평균 기온 대비 상승/하락), 이익과 손실 등
  • 팔레트 목록 (총 9개):
    BrBG, PiYG, PRGn, PuOr, RdBu, RdGy, RdYlBu, RdYlGn, Spectral

✔️ 활용법

발산형 팔레트의 색상을 확인하는 방법은 아래와 같습니다:

display.brewer.pal(n = 11, name = "RdBu")

🔍 예시 이미지

RColorBrewer Palette - 발산형 팔레트 예시 이미지
(빨간색에서 파란색으로 변화하며 중간값을 기준으로 극단값을 강조)


2-3. 범주형 팔레트 (Qualitative)

  • 특징: 서로 다른 범주를 구분할 때 적합합니다.
  • 예시: 국가별 매출, 카테고리별 분류 등
  • 팔레트 목록 (총 8개):
    Accent, Dark2, Paired, Pastel1, Pastel2, Set1, Set2, Set3

✔️ 활용법

범주형 팔레트의 색상을 확인하려면 아래 코드를 사용하세요:

display.brewer.pal(n = 8, name = "Set1")

🔍 예시 이미지

RColorBrewer Palette - 범주형 팔레트 예시 이미지
(Set1 팔레트는 서로 다른 색상으로 범주를 명확하게 구분)


3. 팔레트 목록 확인 및 시각화

3-1. 전체 팔레트 확인하기

모든 팔레트의 목록과 색상을 확인하려면 아래의 코드를 실행하세요:

library(RColorBrewer)
display.brewer.all()

3-2. 팔레트 유형별 확인하기

유형별 팔레트를 확인하는 방법은 다음과 같습니다:

# 순차적 팔레트만 보기
display.brewer.all(type = "seq")

# 발산형 팔레트만 보기
display.brewer.all(type = "div")

# 범주형 팔레트만 보기
display.brewer.all(type = "qual")

4. 팔레트를 활용한 데이터 시각화 예제

4-1. 순차적 팔레트: 히트맵

순차적 팔레트를 사용해 히트맵을 그리는 코드입니다:

library(RColorBrewer)

set.seed(123)
data <- matrix(rnorm(100), nrow=10)
colnames(data) <- paste0("Col", 1:10)
rownames(data) <- paste0("Row", 1:10)

heatmap(data,        
        col = brewer.pal(9, "Blues"),        
        main = "Using a Sequential Palette for a Heatmap",        
        margins = c(5,5))

4-2. 발산형 팔레트: 타일맵

발산형 팔레트를 사용한 타일맵 예제입니다:

library(RColorBrewer)
library(ggplot2)

set.seed(123)
df <- data.frame(x = rep(1:10, each=10), y = rep(1:10, times=10), value = rnorm(100))

ggplot(df, aes(x=x, y=y, fill=value)) +  
  geom_tile() +  
  scale_fill_distiller(palette = "RdBu", direction = 1) +  
  theme_minimal() +  
  labs(title = "Using a Diverging Palette for a Tile Map", x = "X축", y = "Y축")

4-3. 범주형 팔레트: 막대 그래프

범주형 팔레트로 막대 그래프를 그리는 예제입니다:

library(RColorBrewer)
library(ggplot2)

categories <- c("A", "B", "C", "D", "E")
values <- c(23, 45, 32, 58, 29)
df <- data.frame(categories, values)

ggplot(df, aes(x=categories, y=values, fill=categories)) +  
  geom_bar(stat="identity") +  
  scale_fill_brewer(palette="Set3") +  
  theme_minimal() +  
  labs(title = "Using a Qualitative Palette for a Bar Chart", x = "Category", y = "Value")

마무리

RColorBrewer는 데이터 시각화를 위한 강력한 도구입니다.

  • 순차적 팔레트: 연속 데이터 표현
  • 발산형 팔레트: 중간값 기준 극단값 강조
  • 범주형 팔레트: 서로 다른 범주 구분

이제 RColorBrewer를 사용해 멋진 시각화를 만들어보세요!
데이터 분석 결과가 한눈에 들어오고, 보다 생동감 있고 설득력 있는 시각화를 완성할 수 있을 것입니다.

반응형