RColorBrewer Palette로 시각화 색상 마스터하기! (순차적·발산형·범주형 완벽 가이드)
데이터 시각화를 하다 보면, “어떤 색상을 써야 더 잘 보일까?”라는 고민에 빠지곤 하죠. 특히 R을 사용하시는 분이라면, 이 고민은 더욱 실감이 날 겁니다. 하지만 걱정 마세요! 오늘은 RColorBrewer Palette를 활용해 데이터에 생동감을 불어넣는 방법을 알려드릴게요.
순차적, 발산형, 범주형 팔레트의 차이와 활용법까지 모두 다룹니다. 끝까지 읽으시면, 데이터 시각화가 한층 더 재미있어질 거예요!
RColorBrewer Palette란?
RColorBrewer는 R에서 제공하는 색상 팔레트 패키지로, 데이터 시각화를 위한 다양한 색상 조합을 제공합니다. 특히, 순차적(Sequential), 발산형(Diverging), 범주형(Qualitative) 팔레트를 제공해 데이터의 특성에 맞는 색상을 손쉽게 선택할 수 있죠.
팔레트 유형과 특징
1. 순차적 팔레트
- 특징: 낮은 값에서 높은 값으로 진행되는 데이터를 표현할 때 적합합니다.
- 예시: 온도 변화, 매출 증가 등
- 팔레트 목록: 총 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")

2. 발산형 팔레트
- 특징: 중간값을 기준으로 양 극단의 값을 강조할 때 사용됩니다.
- 예시: 기온 변화(평균 기온 대비 상승/하락), 이익과 손실
- 팔레트 목록: 총 9개가 있습니다.
- BrBG, PiYG, PRGn, PuOr
- RdBu, RdGy, RdYlBu, RdYlGn, Spectral
- 활용법: 아래 코드를 통해서 다음과 같은 발산형 팔레트의 색상을 확인할 수 있습니다
display.brewer.pal(n = 11, name = "RdBu")

3. 범주형(Qualitative) 팔레트
- 특징: 서로 다른 범주를 구분할 때 적합합니다.
- 예시: 국가별 매출, 카테고리별 분류
- 팔레트 목록: 총 8개가 있습니다.
- Accent (8색), Dark2 (8색), Paired (12색)
- Pastel1 (9색), Pastel2 (8색), Set1 (9색)
- Set2 (8색), Set3 (12색)
- 활용법: 아래 코드를 통해서 다음과 같은 범주형 팔레트의 색상을 확인할 수 있습니다
display.brewer.pal(n = 8, name = "Set1")

팔레트 목록 확인 및 시각화
1. 전체 팔레트 확인하기
아래의 코드를 실행하면 위에서 소개한 팔레트의 모든 목록과 색상을 확인할 수 있습니다.
library(RColorBrewer)
display.brewer.all()

2. 팔레트 유형 확인하기
아래의 코드를 실행하면 유형별로 팔레트의 목록과 색상을 각각 확인할 수 있습니다.
# 순차적 팔레트만 보기
display.brewer.all(type = "seq")
# 발산형 팔레트만 보기
display.brewer.all(type = "div")
# 범주형 팔레트만 보기
display.brewer.all(type = "qual")



팔레트를 활용한 데이터 시각화 예제
1. 순차적(Sequential) 팔레트를 활용한 히트맵

#패키지 로딩
library(RColorBrewer)# 데이터 생성
Using a Sequential Palette for a Heatmap
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 = "",
margins = c(5,5))
코드 해석
set.seed(123)
:
- 랜덤 숫자 생성의 재현성을 보장하기 위해 시드 값을 설정합니다. 동일한 코드를 실행할 때마다 동일한 난수를 생성합니다.
matrix(rnorm(100), nrow=10)
:
- 평균이 0이고 표준편차가 1인 정규분포에서 난수 100개를 생성하여 10행으로 구성된 행렬을 만듭니다.
colnames(data) <- paste0("Col", 1:10)
:
- 열 이름을 “Col1”, “Col2”, …, “Col10″으로 지정합니다.
rownames(data) <- paste0("Row", 1:10)
:
- 행 이름을 “Row1”, “Row2”, …, “Row10″으로 지정합니다.
heatmap()
:
- 주어진 데이터를 히트맵으로 시각화합니다.
col = brewer.pal(9, "Blues")
:
RColorBrewer
의 순차적 팔레트 중 하나인"Blues"
팔레트를 사용하여 히트맵의 색상을 설정합니다.brewer.pal(9, "Blues")
는"Blues"
팔레트에서 9개의 색상을 반환합니다.main = "Using a Sequential Palette for a Heatmap"
:
- 히트맵의 제목을 설정합니다.
margins = c(5,5)
:
- 히트맵의 행과 열 이름이 표시될 여백 크기를 지정합니다.
2. 발산형(Diverging) 팔레트를 활용한 타일맵

#패키지 로딩
library(RColorBrewer)# 데이터 생성
Using a Diverging Palette for a Tile Map
set.seed(123)
df <- data.frame(
x = rep(1:10, each=10),
y = rep(1:10, times=10),
value = rnorm(100)
)
# ggplot으로 타일맵 그리기
library(ggplot2)
ggplot(df, aes(x=x, y=y, fill=value)) +
geom_tile() +
scale_fill_distiller(palette = "RdBu", direction = 1) +
theme_minimal() +
labs(title = "",
x = "X축", y = "Y축")
코드 해석
RColorBrewer
: 데이터 시각화를 위한 색상 팔레트를 제공하는 패키지입니다.
ggplot2
: 데이터 시각화를 위한 강력한 그래프 패키지로, 다양한 유형의 그래프를 생성할 수 있습니다.
set.seed(123)
: 난수 생성의 재현성을 보장하기 위해 시드 값을 설정합니다. 동일한 코드를 실행할 때마다 동일한 결과를 얻을 수 있습니다.data.frame()
: 데이터를 X축, Y축, 그리고 각 좌표의 값을 나타내는value
열로 구성된 데이터 프레임으로 만듭니다.
x
: 1~10의 값을 각 값이 10번씩 반복.y
: 1~10의 값을 총 10번 반복.value
: 평균이 0이고 표준편차가 1인 정규분포에서 난수 생성.
ggplot(df, aes(x=x, y=y, fill=value))
:
ggplot()
함수는 데이터 프레임(df
)을 기반으로 시각화를 생성합니다.aes()
는 시각화의 축과 색상 매핑을 정의합니다:
x=x
: X축에x
열 매핑.y=y
: Y축에y
열 매핑.fill=value
: 타일 색상을value
값에 따라 설정.geom_tile()
:
- 타일맵을 생성하는 함수로, 각
(x, y)
좌표에 해당하는 사각형을 그립니다.scale_fill_distiller(palette = "RdBu", direction = 1)
:
- RColorBrewer의 발산형 팔레트
"RdBu"
를 사용하여 색상을 설정합니다.
"RdBu"
: 빨간색(Red)과 파란색(Blue)을 사용하여 중간값에서 양 극단으로 색상이 대조됩니다.direction = 1
: 기본 방향으로 팔레트를 적용합니다.theme_minimal()
:
- 그래프의 불필요한 요소를 제거하고 깔끔한 스타일을 적용합니다.
labs()
:
- 그래프 제목과 축 이름을 설정합니다:
- 제목:
"Using a Diverging Palette for a Tile Map"
.- X축 이름:
"X축"
.- Y축 이름:
"Y축"
.
3. 범주형(Qualitative) 팔레트를 활용한 막대 그래프

#패키지 로딩
library(RColorBrewer)
# 데이터 생성
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
: 데이터 시각화를 위한 색상 팔레트를 제공하는 패키지입니다.
ggplot2
: 데이터 시각화를 위한 강력한 그래프 패키지로, 다양한 유형의 그래프를 생성할 수 있습니다.
categories
: 막대 그래프의 X축에 표시될 범주형 데이터입니다. 여기서는 “A”, “B”, “C”, “D”, “E”라는 카테고리를 정의합니다.values
: 각 카테고리에 대응하는 값으로 Y축에 표시됩니다.data.frame()
:categories
와values
를 결합하여 데이터 프레임(df
)을 만듭니다.
ggplot(df, aes(x=categories, y=values, fill=categories))
:
ggplot()
함수는 데이터를 기반으로 그래프를 생성합니다.aes()
는 시각화의 축과 색상을 매핑합니다:
x=categories
: X축에categories
열 매핑.y=values
: Y축에values
열 매핑.fill=categories
: 막대의 색상을 각 카테고리에 따라 다르게 설정.geom_bar(stat="identity")
:
- 막대 그래프를 생성하며, 각 막대의 높이는 데이터(
values
) 값에 따라 설정됩니다.scale_fill_brewer(palette="Set3")
:
- RColorBrewer의 범주형 팔레트
"Set3"
을 사용하여 막대의 색상을 설정합니다."Set3"
은 서로 다른 범주를 구분하기 위해 다양한 색상을 제공합니다.theme_minimal()
:
- 그래프의 불필요한 요소를 제거하고 깔끔한 스타일을 적용합니다.
labs()
:
- 그래프 제목과 축 이름을 설정합니다:
- 제목:
"Using a Qualitative Palette for a Bar Chart"
.- X축 이름:
"Category"
.- Y축 이름:
"Value"
.
마무리
RColorBrewer는 데이터 시각화를 위한 강력한 도구입니다. 이를 이용해서 팔레트 유형별로 히트맵, 타일맵, 막대 그래프 예시를 살펴보았습나다.
순차적 데이터에는 밝은 색에서 어두운 색으로 진행되는 순차적 팔레트를 사용하고, 중간값과 극단값을 강조하려면 발산형 팔레트를 선택하세요. 범주를 구분해야 할 때는 범주형 팔레트를 활용하면 됩니다.
여러분의 데이터가 더 생동감 있고 이해하기 쉬워질 겁니다. 이제 RColorBrewer를 사용해 멋진 시각화를 만들어보세요!
