以ggplot2等包為基礎(chǔ)的R語言可視化是科研人員非常喜愛的一個方式荆责,不過我也在這個上遇到了些問題。就是導(dǎo)出高分辨率的圖片之后,插入到word里腌逢,就顯得模糊不清(壓縮得非常厲害)。如果不壓縮的話国拇,word動輒100M以上洛史。最近剛好有了一個解決方式,就來介紹下酱吝。
解決方案思路:R+Corel Draw
這也是某期刊圖的修改要求也殖,必須提供.cdr文件。當(dāng)然測試后發(fā)現(xiàn)务热,.cdr輸出的tif即使被壓縮忆嗜,也能很清晰。
這里談?wù)勗趺醋銎槠瘛J紫萊目前是沒法直接輸出.cdr格式的文件的捆毫,根據(jù)網(wǎng)上的經(jīng)驗就是用emf這個格式,能夠輸出Corel Draw能讀取的矢量文件冲甘,導(dǎo)入后再做些微調(diào)绩卤。
但是R輸出emf沒有像tiff和jpeg那樣的語句,主要使用的是savePlot函數(shù)江醇。
這里摘下R的幫助文檔再來解釋這個函數(shù)
Usage
savePlot(filename = "Rplot",
type = c("wmf", "emf", "png", "jpg", "jpeg", "bmp",
"tif", "tiff", "ps", "eps", "pdf"),
device = dev.cur(),
restoreConsole = TRUE)
Arguments
filename
The filename under which to save the plot. Tilde-expansion (see path.expand is supported.
type
The type of plot, Windows metafile, PNG, JPEG, BMP (Windows bitmap format), TIFF, PostScript or PDF.
device
A device number of a windows device, by default the current device.
restoreConsole
See the ‘Details’ section of windows.
一個參數(shù)一個參數(shù)來解釋吧濒憋。
filename:很好理解,就是你要輸出的圖片路徑和名稱陶夜,用字符串類型凛驮。如“C:/Rplot"。不必加后綴条辟。
type:輸出格式黔夭。
device:Windows設(shè)備的設(shè)備編號,默認為當(dāng)前設(shè)備羽嫡,這個參數(shù)本姥。
restoreConsole:這個參數(shù)也是跟windows圖形設(shè)備相關(guān)的。
實際使用時杭棵,后兩個參數(shù)默認就可以扣草。主要是針對前兩個參數(shù)。
接下來用一個案例來展示下操作颜屠。使用的是R語言默認的mtcars數(shù)據(jù)辰妙。用plot繪圖和ggplot2繪圖各測試一遍。但是筆者就如網(wǎng)上所說在Rstudio中運行savePlot報錯甫窟。
事實上這個語句只能在原生的Rgui中運行密浑。因此將R代碼存成腳本,在Rgui中直接用source調(diào)用寫好的腳本即可粗井。
plot只需直接繪圖語句尔破。而ggplot則需要多一句print語句街图,才能輸出圖片。
運行完后懒构,打開corel draw餐济,按下圖進行操作。
這樣就能把emf轉(zhuǎn)變成全部可編輯的矢量了胆剧。
當(dāng)然Rstudio也有個方法絮姆。就是使用復(fù)制到剪貼板的功能,然后粘貼到Corel Draw里面秩霍。
這就是將R導(dǎo)入到Corel Draw前期工作篙悯。相比與之前壓縮得非常厲害的圖片,我感覺Corel Draw輸出的圖片質(zhì)量非常高铃绒。此外鸽照,后面搜索時,我也發(fā)現(xiàn)了R的一個包:devEMF: EMF Graphics Output Device颠悬“牵可以輸出emf,這樣在Rstudio里也可以操作了赔癌。