색상 설정
기본 그래프 준비하기
데이터 시각화를 할 때 색상은 데이터를 이해하고 구분하는 데 중요한 역할을 합니다. 이번 글에서는 ggplot2 패키지를 사용해 그래프를 그리는 기본 방법부터, RColorBrewer 팔레트를 활용하는 방법과 직접 색상을 지정하는 방법까지 차례로 알아보겠습니다.
이번 시간에는 둘 이상의 속성 시각화 글에서 그린 차트를 활용합니다. 아래 코드를 보면, fill 속성을 기준으로 자동으로 색상이 지정됩니다. 기본 색상으로도 충분하지만, 상황에 따라 특정 색상을 사용해야 할 수도 있습니다. 이 경우 RColorBrewer와 같은 색상 팔레트나 직접 지정하는 방법을 활용하면 됩니다.
# 패키지 로드
library(showtext)
# 글꼴 설정
font_add("kopub", "C:/Users/.../AppData/Local/Microsoft/Windows/Fonts/KoPub Dotum Medium.ttf")
showtext_auto()
showtext_opts(dpi=300)
theme.size = 14
text.size = theme.size / .pt
# 차트 그리기
base <- ggplot(data = data2,
aes(x = 구분, y = 값, group = 종류, fill = 종류)) +
geom_col(position=position_dodge(width = 0.7), width = 0.6) +
geom_text(aes(label=scales::comma(값, accuracy = .1)),
position=position_dodge(width = 0.7),
vjust = -0.5,
family = "kopub",
size = text.size) +
scale_y_continuous(name = "길이(단위: cm)",
expand = expansion(mult = c(0, 0.3))) +
theme_bw(base_family = "kopub", base_size = theme.size) +
theme(
axis.title.x = element_blank(),
legend.title = element_blank(),
legend.key.height = unit(theme.size, "pt"),
legend.key.spacing.y = unit(3, "pt")
)
base

RColorBrewer 색상 팔레트 활용하기
RColorBrewer 패키지는 데이터의 특성과 목적에 따라 적합한 색상을 선택할 수 있도록 다양한 색상 팔레트를 제공합니다. 이 팔레트는 크게 세 가지 유형으로 나뉩니다. 첫 번째로 연속형 팔레트는 낮은 값에서 높은 값으로 순차적으로 진행되는 데이터를 표현할 때 사용됩니다. 온도, 판매량, 인구 수와 같은 연속형 데이터를 시각화할 때 유용하죠. 두 번째로 발산형 팔레트는 중간값(임계값)을 기준으로 데이터의 극단적인 값을 강조할 때 적합합니다. 예를 들어, 0을 기준으로 음수와 양수를 구분하거나, 손익 데이터를 표현할 때 활용할 수 있습니다. 마지막으로 명목형 팔레트는 범주형 데이터를 시각화할 때 사용되며, 꽃의 종류나 고객 유형처럼 데이터 간의 순서가 없는 경우 적합합니다. RColorBrewer 도움말 문서를 참고하여 각 유형에 대한 설명과 세부적인 팔레트명을 표로 정리했습니다.
| 유형 | 설명 | 팔레트명 |
|---|---|---|
| 연속형 팔레트 | 데이터 값이 낮은 값에서 높은 값으로 순차적으로 진행되는 경우 활용하며, 낮은 값은 밝은 색, 높은 값은 어두운 색으로 표시함 | Blues, BuGn, BuPu, GnBu, Greens, Greys, Oranges, OrRd, PuBu, PuBuGn, PuRd, Purples, RdPu, Reds, YlGn, YlGnBu, YlOrBr, YlOrRd |
| 발산형 팔레트 | 중간값(임계값)과 데이터 범위 양쪽 끝의 극단적인 값을 강조할 때 사용하며, 중간 값은 밝은 색으로, 양쪽 극단 값은 어둡지만 대비되는 색상으로 표시함 | BrBG, PiYG, PRGn, PuOr, RdBu, RdGy, RdYlBu, RdYlGn, Spectral |
| 명목형 팔레트 | 명목형 또는 범주형 데이터를 표현할 때 사용함 | Accent, Dark2, Paired, Pastel1, Pastel2, Set1, Set2, Set3 |
팔레트명을 보고 색상을 바로 알기 어렵다면, display.brewer.all 함수를 사용하면 됩니다. 이 함수는 RColorBrewer에서 제공하는 모든 팔레트를 그래픽 창에 표시해 주며, 각 팔레트의 색상과 이름을 한눈에 확인할 수 있습니다. 또한, colorbrewer2 웹사이트를 방문하면 팔레트를 더 직관적으로 탐색할 수 있습니다.
# 패키지 로드
library(RColorBrewer)
# 팔레트 보기
display.brewer.all()

Iris 데이터셋에서 꽃의 종류인 setosa, versicolor, virginica를 구분하기 위해 명목형 데이터에 적합한 정성형 팔레트를 사용해 보겠습니다. Pastel2 팔레트를 활용하겠습니다.
base +
scale_fill_brewer(palette = "Pastel2")

직접 색상 지정하기
경우에 따라 팔레트 대신 직접 색상을 설정해야 할 때가 있습니다. 보고서나 발표자료 서식 테마에 맞는 색을 사용해야 할 때가 대표적입니다. 이런 경우 scale_fill_manual 함수를 사용하면 데이터를 원하는 색으로 자유롭게 지정할 수 있습니다. setosa를 보라색(#C072ED), versicolor를 황토색(#EDC272), virginica를 민트색(#72EDAC)으로 설정해 보겠습니다.
base +
scale_fill_manual(values=c("setosa" = "#C072ED",
"versicolor" = "#EDC272",
"virginica" = "#72EDAC"
)
)

이 글에서는 ggplot2에서 색상을 설정하는 방법에 대해 살펴보았습니다. 자동으로 제공되는 기본 색상부터 RColorBrewer 팔레트를 활용하는 방법, 그리고 직접 색상을 설정하는 방법까지 다뤘습니다. 데이터의 특성과 시각화 목적에 따라 적합한 색상을 선택하면, 그래프의 가독성과 전달력을 더욱 높일 수 있습니다. 지금까지 배운 방법을 활용해 나만의 스타일로 데이터를 시각화해 보세요!