R에서 그림을 저장하는 방법은 여러 가지이다.
기본적으로 R base함수인 png(), pdf() 등이 있으며, ggplot2의 ggsave가 있다.
나는 ggsave가 편리해서 이 함수를 더 많이 사용하는 편이다. 그런데 taxonomy plot을 그리면 각 기둥에 선이 나타날 때가 있다. 아래 그림의 왼쪽에서 8번째 기둥을 보면 같은 색의 기둥에 여러 선들이 가 있다. 이는 Rstudio에서 볼 때는 나타나지 않다가 ggsave로 저장 시에만 나타난다.
이 원인에 대해서 chatgpt에게 물어봤지만 마땅한 답을 얻지 못했다. 그래서 ?ggsave를 입력해서 하나하나 변수를 보기 시작했다.
ggsave(
filename, # 원하는 파일 경로와 이름
plot = last_plot(), # 저장할 plot지정, 입력하지 않으면 마지막으로 출력한 그래프를 저장한다.
device = NULL, # 저장할 그림 형식 : "eps", "ps", "tex" (pictex), "pdf", "jpeg", "tiff", "png", "bmp", "svg" or "wmf" (windows only).
path = NULL, # filename에서 경로를 적지 않고 여기서 적어도 된다
scale = 1, # 저장 크기 ex) scale 값을 0.5로 설정하면 원본 그래프의 절반크기로 저장
width = NA, # 너비
height = NA, # 높이
units = c("in", "cm", "mm", "px"), # 너비, 높이 단위 (default값이 inch)
dpi = 300, # 화질 (논문 용은 기본 300이상 )
limitsize = TRUE, # TRUE면 최대 크기은 50x50 in 이상 이미지 저장 가능
bg = NULL, # 배경지정
)
여기에 추가로 기존 png() 함수 들에만 사용된 type 같은 옵션도 사용 가능했다.
예를 들어 type = "cairo" 옵션을 추가해서 조금 더 깔끔한 고해상도의 png파일을 만드는 것이 가능하다.
그래서 내가 최종적으로 선택한 저장옵션은 아래와 같다.
ggsave("./example.png" , # 파일 저장 위치와 경로
width = 8, height = 6, dpi = 300, # 저장 이미지 크기(단위 : in)와 화질
device = png, # 파일 저장 형식
type = "cairo", # 고품질 png
bg = "transparent") # 투명한 배경(이미지 크기 감소)
아래 이미지를 통해 전 후의 차이를 보자.
개선하고 싶은 부분이 모두 개선되었다. 이 저장옵션을 지금에서야 알다니ㅠ
그래도 논문 나오기 전에 알게 되어서 다행으로 생각하고 있다.
반응형