Skip to content

R Tips ― Mac OS X에서 R 그래픽 한글 출력하기

R에서 그래픽 출력은 화면, 프린터 그리고 파일(PDF, PostScript, PicTeX, PNG, JPEG 등)의 형태로 이뤄집니다. Mac OS X에서 화면 출력은 쿼츠(Quartz)가 담당 하는데, 별도의 명령이 없다면 R에서 작성한 모든 그래픽은 쿼츠를 이용해 출력합니다.

문제는 R에서 만든 그래픽에 한글을 삽입했을 때 생깁니다. Mac OS X에 R을 설치한 후, 한글이 들어간 그래픽을 출력하면 아래처럼 정상적으로 나오지 않습니다.

Hangeul problem

이 문제를 해결하려면 자신의 홈 디렉터리나 R 작업 디렉터리 밑에 있는 .Rprofile 파일에 다음과 같은 내용을 추가하면 됩니다. 이 방법은 R-SIG-Mac 메일링 리스트를 통해 EI-JI Nakama가 공유해 주었습니다.

setHook(packageEvent("grDevices", "onLoad"),
        function(...){
        if(capabilities("aqua"))
            grDevices::quartzFonts(
              sans =grDevices::quartzFont(rep("AppleGothic",4)),
              serif=grDevices::quartzFont(rep("AppleMyungjo",4)))
        grDevices::pdf.options(family="Korea1")
        grDevices::ps.options(family="Korea1")
        }
)
attach(NULL, name = "KoreaEnv")
assign("familyset_hook",
       function() {
            macfontdevs=c("quartz","quartz_off_screen")
            devname=strsplit(names(dev.cur()),":")[[1L]][1]
            if (capabilities("aqua") &&
                devname %in% macfontdevs)
                    par(family="sans")
       },
       pos="KoreaEnv")
setHook("plot.new", get("familyset_hook", pos="KoreaEnv"))
setHook("persp", get("familyset_hook", pos="KoreaEnv"))

이렇게 수정한 뒤, R을 다시 실행해서 한글이 들어간 그래픽을 출력하면 다음과 같이 정상적으로 나옵니다. ▩

Hangeul enabled

 

 


* 본문 예제는 한국야구위원회 기록실 페이지에 올라온 타자별 기록을 사용해 만들었습니다(2011년 9월 기록).

Post a Comment

Your email is never published nor shared. Required fields are marked *
*
*