고품질의 플로팅 이미지 얻기

최근에 ggplot2로 플로팅을 많이 하면서 어떻게 하면 선명한 이미지를 얻어볼까 고민을 조금 했다. 그러다 DPI라든지 픽셀, 도트 같은 웹디자이너 분들이나 다룰 만한 지식을 섭렵하기에 이르렀는데, 결국 컴퓨터 화면에서는 고 해상도가 아닌 이상 플로팅 결과의 차이는 거의 찾아볼 수 없다는 게 결론이다. 그러나 그래프 이미지는 발표자료 같은 곳에서 사용될 수 있고, 이때 이들에서 최적의 해상도로 보여진다면 더 효과적인 발표가 될 것이다.

일단 간단한 예로 지난 포스팅의 결과를 가지고 테스트를 해보도록 하겠다.

지난 포스팅의 그래프를 72DPI의 결과와 600DPI의 결과의 이미지로 출력한다(R은 기본이 72DPI이다).

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
library(ggplot2)
 
blogstat <- read.table("SingleFeedStats.csv" ,sep=",", header=T, stringsAsFactors=F)
 
blogstat$Date <- as.Date(blogstat$Date, "%m-%d-%Y")
 
gg1 <- ggplot(blogstat, aes(Date,Subscribers)) + geom_line(aes(colour=Hits))  + xlab("날짜") + ylab("구독자") + 
  scale_color_continuous(name="히트", low="yellow", high="black", guide = guide_legend(reverse=TRUE)) + scale_x_date(breaks ="6 month")
 
gg1
 
tiff(file = "1nd.tiff",width = 648, height = 288, units = "px",type="cairo", family="PKS Bukul", antialias="subpixel" ,compression="lzw")
gg1
dev.off()
 
 
tiff(file = "2nd.tiff",width = 5400, height = 2400, units = "px",type="cairo", res=600,family="PKS Bukul", antialias="subpixel", compression="lzw")
gg1
dev.off()

 

 

1nd.tiff 파일은 648/72(9) inch X 288/72(4) inch 의 이미지 파일을 출력하고,

2nd.tiff 파일은 5400/600(9) inch X 2400/600(4) inch 의 이미지 파일을 출력한다.

모두 프린트시 9 X 4 inch의 파일을 생성하나 해상도는 차이가 있다. 이들의 차이점을 간단하게 테스트 하기 위해서 pdf 문서로 이미지를 출력 한 후 비교를 해본다.

문서를 72% 확대 후 비교해 보면 아래와 같이 별 차이가 없으나…

 

image

 

100%로 문서를 비교하게 되면 아래와 같은 차이가 보인다.

 

image

 

 

주로 발표할 때  한글과 컴퓨터의 한쇼를 쓰는데(정품을 가지고 있다는 이유 하나만으로…), 이 한쇼에서는 메뉴얼에 명시되지 않았지만 600DPI 이미지를 기본 사용하는 것으로 알고 있다. (이 부분은 이미지를 로딩해보고 상세 항목에서 이미지 크기를 확대/축소하지 않은 크기를 확인하면 알 수 있다)

R로 그래프 플로팅을 한 결과를 고품질 이미지로 프리젠테이션에 넣는다면 발표시 그리고 그 발표자료를 출력한 핸드아웃을 만들 때 그래프의 퀄리티는 차이가 날 것이다. 단 프린터의 경우 600DPI가 많지만, 프로젝터의 경우 그렇지 않은 경우가 있으므로 발표용 자료는 각자의 테스트가 필요할 거라 생각한다. 물론 내 경우는 모든 데이터 플로팅 결과는 600DPI다. 왜냐면 그래프는 라인이 만들어내는 Art의 한 종류이고 청중에게 가장 정확하고 명료하게 전달될 필요가 있는 중요한 개체이기 때문이다.

그리고 여담이지만 anti-aliasing 옵션은 요즘엔 필수다.

CC BY-NC 4.0 고품질의 플로팅 이미지 얻기 by from __future__ import dream is licensed under a Creative Commons Attribution-NonCommercial 4.0 International License.