R語言通過支持Cairo矢量圖形處理的類庫,可以創建高質量的矢量圖形(PDF,PostScript,SVG) 和 位圖(PNG,JPEG, TIFF),同時支持在后台程序中高質量渲染。在ggplot2中,圖片輸出經過Cairo包處理后,輸出個效果更好,可以輸出成PDF格式,PDF格式體積小,同時可以儲存為其他任何格式,隨后再將PDF儲存為eps格式並在Photoshop中打開做最終的調整,例如調整比例、色彩空間和dpi(一般雜志和出版社要求dpi=300以上)等。額外需要注意的是ggplot2中的字體大小問題,在cookbook-r一書中指出,在ggplot2中絕大多數情況下,size的大小以mm記,詳細的討論也可以參考stackover的討論,而在theme()中對element_text()里的size進行調整,此時的size是以磅值(points, pts)來進行表示。
下面以3種ggplot2種常用的圖片輸出方式,輸出一幅主標題為20pts,橫縱坐標標題為15pts,長為80mm(3.15in),寬為60mm(2.36in)的圖為例。
require(ggplot2) require(Cairo) ggplot() + geom_text(aes(x = 16, y = 16), label = "ABC", size = 11.28) + #尺寸為11.28mm,即為32磅 geom_text(aes(x = 16, y = 14.5), label = "ABC", size = 32) + #尺寸為32mm labs( x = "x axis", y = "y axis") + ylim( c(14, 16.5)) + xlim( c(15.75, 16.25)) + theme( axis.title.x = element_text(size = 32),#尺寸為32磅 axis.title.y = element_text(size = 32))#尺寸為32磅 x <- seq(-4,4, length.out = 1000) y <-dnorm(x) data <- data.frame(x, y) #用Cairo包輸出 require(Cairo) CairoPDF("plot1.pdf", 3.15, 3.15) #單位為英寸 ggplot(data, aes(x = x, y = y)) + geom_line(size = 1) + theme_bw() dev.off() #關閉圖像設備,同時儲存圖片 plot2 <- ggplot(data, aes(x = x, y = y)) + geom_line(size = 1) + theme_bw() #用ggsave輸出,默認即以用Cairo包進行抗鋸齒處理 ggsave("plot2.pdf", plot2, width = 3.15, height = 3.15) #RStudio輸出
轉自博文:http://www.cellyse.com/how_to_use_gggplot2_part2/