相信每一個(gè)從事生物信息榜跌、生命科學(xué)或者生態(tài)學(xué)研究的科研工作者們都被這幾年R語言的飛速發(fā)展所震驚了集漾。強(qiáng)大的統(tǒng)計(jì)函數(shù)包趟薄,分析統(tǒng)計(jì)后期的數(shù)據(jù)處理和可視化都非常完美瞎颗,大數(shù)據(jù)時(shí)代更是派上了用場坐搔,一些政府機(jī)構(gòu)和公司在出年終報(bào)告的時(shí)候也都開始逐漸用上了數(shù)據(jù)可視化的利器ggplot2.?
筆者在今年環(huán)保部水環(huán)境管理司司長的一場關(guān)于南四湖治理和全國水環(huán)境管理的報(bào)告上感覺到將ggplot2用于政府相關(guān)部門的工作報(bào)告上非常有用婉徘,無論是ggmap和ggplot2的結(jié)合漠嵌,還是就ggplot2本身而言,分組畫圖的優(yōu)勢非常明顯盖呼。但是一直讓人困擾的問題是儒鹿,R語言對中文的支持非常不好,在畫出美妙的柱狀圖或者箱線圖中的過程不能出現(xiàn)任何中文几晤,每一列數(shù)據(jù)的列名必須是英文约炎,相關(guān)的數(shù)據(jù)標(biāo)識(shí)也必須是英文,但我們知道蟹瘾,正規(guī)的政府工作報(bào)告中圖標(biāo)的標(biāo)題或者x軸y軸的名字等都必須要是中文圾浅,在碩士博士論文中的圖也需要中文,有時(shí)需要中文和英文混合使用憾朴,使用的字體也有明確的要求狸捕,如果想要用R作圖就必須要解決這個(gè)問題。
其實(shí)這個(gè)問題由來已久众雷,筆者所在的科研領(lǐng)域灸拍,每一個(gè)雜志對作圖的英文字體要求都有所不同做祝,比如有的要求Times New Roman,有的要求更加好看的Arial和Helvetica鸡岗,也有很少一部分要求Courier混槐。使用一些畫圖軟件比如sigmaplot,OriginLab或者M(jìn)ac的prism等可以直接修改字體轩性,也算是一種很好的解決方案声登,但相比于R環(huán)境,顏色的搭配炮姨,分組標(biāo)識(shí)畫圖捌刮,多樣化的圖標(biāo)類型等碰煌,都有所欠缺舒岸。
為了能夠在R中使用不同的中英文字體畫出圖來,我們需要對R語言的圖形設(shè)備系統(tǒng)有一個(gè)很好的了解芦圾。其實(shí)這設(shè)計(jì)到R語言的前生----S語言蛾派,其圖形系統(tǒng)也在不斷被更新,關(guān)于R的圖形引擎和圖形系統(tǒng)之間的關(guān)系可以參照一個(gè)微信公眾號(hào)(zhongheng)簡單概括為下面這張圖:
核心就是grDevice个少,R語言的圖形引擎洪乍,所有的圖形系統(tǒng)和后來的作圖包都是基于這樣的圖形系統(tǒng)。關(guān)于不同的操作系統(tǒng)中的圖形設(shè)備(圖形系統(tǒng)的組成部分)夜焦,和基于這些圖形設(shè)備的文件設(shè)備壳澳,比如pdf,postscript等茫经,可以參照Paul Murrel的R graphics(2005)巷波,簡單概括為以下的表格:
為什么要了解相關(guān)的圖形設(shè)備和文件設(shè)備呢?因?yàn)檎{(diào)用R的文件設(shè)備比如pdf畫圖時(shí)卸伞,對這些圖形設(shè)備的特點(diǎn)有所了解抹镊,他們能夠使用的字體等等,對接下來的R作圖相當(dāng)關(guān)鍵荤傲。