맥에서 ggplot2 한글 문제 해결 및 개인화 테마 설정

맥에서 ggplot2를 사용할 시 한글표현 문제가 있다는 것은 많은 분들이 공감하고 있을 것이다. 이 부분에 대해서 최근 팀 내 세명의 분석가분에게서 동일한 질문을 받았기 때문에 관련해서 정리를 해보고자 한다. 물론 기본 그래프에서도 그러한 문제가 발생하는데 관련된 문제는 par(family='Unbatang')과 같은 형태로 플로팅 이전에 설정해주면 대부분의 경우 해결된다.

ggplot2의 경우 테마를 건드려야 되는데, 필자의 경우 개인 커스터마이징 테마와 더불어 한글 문제까지 해결을 해서 사용을 하고 있다.

개인적으로 fivethirtyeight의 테마를 좋아하는데 해당 테마를 구현한 ggthemes 패키지에서 x,y 레이블링을 빼먹어 버려서 거의 업무나 블로그에 사용하지 못할 지경이다. 따라서 이 부분을 고쳐서 사용중에 있다.

위 설정들을 .Rprofile에 등록해두면 R을 실행할때마다 해당 코드가 자동으로 실행되어 몇가지 간편한 작업들에 대해서 신경쓰지 않고 미리 적용할 수 있는 장점이 있다.

금번 포스팅은 필자가 위 문제를 해결하기 위해 개인적으로 설정해서 사용하는 .Rprofile의 특정 부분을 공유하도록 해보겠다.

참고로 .Rprofile은 두가지 종류가 있다. 시스템 계정내 모든 R유저가 공유하는 것과 개인 계정만 적용가능한 파일이 있는데, 맥의 경우 개인용도이기 때문에 개인의 home 경로에 위치 시키면 되는데, 필자의 경우 /Users/gogamza/.Rpfofile이 되겠다.

#시스템에 설치된 나눔고딕을 사용하기 위해 extrafont 패키지를 설치했다. 
#관련 내용은 http://blog.revolutionanalytics.com/2012/09/how-to-use-your-favorite-fonts-in-r-charts.html 참고

suppressPackageStartupMessages({
library(ggplot2)
library(ggthemes)
library(extrafont)
})


#개인화된 테마 작업
theme_gogamza<- function(base_size = 12, base_family = "NanumGothic"){
     (theme_foundation(base_size = base_size, base_family = base_family) +
        theme(line = element_line(colour = "black"), rect = element_rect(fill = ggthemes_data$fivethirtyeight["ltgray"],
            linetype = 0, colour = NA), text = element_text(colour = ggthemes_data$fivethirtyeight["dkgray"]),
            axis.title = element_text(), axis.text = element_text(),
            axis.ticks = element_blank(), axis.line = element_blank(),
            legend.background = element_rect(), legend.position = "bottom",
            legend.direction = "horizontal", legend.box = "vertical",
            panel.grid = element_line(colour = NULL), panel.grid.major = element_line(colour = ggthemes_data$fivethirtyeight["medgray"]),
            panel.grid.minor = element_blank(), plot.title = element_text(hjust = 0,
                size = rel(1.5), face = "bold"), plot.margin = grid::unit(c(1,
                1, 0.5, 0.5), "lines"), strip.background = element_rect(), panel.margin.x=NULL, panel.margin.y=NULL))
}

#ggplot2 메인 테마로 설정
theme_set(theme_gogamza())

#기본 테마에서 한글 폰트 정의를 하고 싶다면 아래 코드만 실행한다. 
#theme_set(theme_gray(base_family='NanumGothic'))

이렇게 해두면 ggplot2를 로딩할 필요가 없이 아래 명령어로 바로 시각화 결과를 볼 수 있다. ggplot2는 거의 필수 패키지라서 매번 자동으로 로딩이 가능하게끔 관리하는 것이 오히려 낫다. 그것도 맘에 드는 개인화된 시각화 테마와 함께라면 더욱 그럴것이다.

폰트는 역시 개인적으로 좋아하는 나눔고딕체이다.

ggplot(iris, aes(Sepal.Length, Sepal.Width)) + 
  geom_point(aes(colour=Species)) + ggtitle("나눔고딕체 제목")

plot of chunk unnamed-chunk-3

CC BY-NC 4.0 맥에서 ggplot2 한글 문제 해결 및 개인화 테마 설정 by from __future__ import dream is licensed under a Creative Commons Attribution-NonCommercial 4.0 International License.