- R語言數據可視化之美:專業圖表繪制指南
- 張杰
- 1080字
- 2019-09-20 14:52:46
1.6.6 主題系統
主題系統包括繪圖區背景、網格線、坐標軸線條等圖表的細節部分,而圖表風格主要是指繪圖區背景、網格線、坐標軸線條等的格式設定所展現的效果。ggplot2圖表的主題系統主要對象包括文本(text)、矩形(rect)和線條(line)三大類,對應的函數包括element_text()、element_rect()、element_line(),另外還有element_blank()表示該對象設置為無,具體如表1-6-6所示。其中,我們使用比較多的系統對象是坐標軸的標簽(axis.text.x、axis.text.y)、圖例的位置與背景(legend.position和legend.background)。X軸標簽(axis.text.x)在繪制極坐標柱形圖和徑向柱形圖時會用于調整X軸標簽的旋轉角度,Y軸標簽(axis.text.y)也會用于時間序列峰巒圖的Y軸標簽的替換等,具體可見后面圖表案例的講解。
由于ggplot2主題設置的內部函數及參數非常多,所以不建議新手直接學習。針對新手,建議使用ggThemeAssist包進行主題設置,用鼠標而不是代碼,這樣更加方便,也可以直接套用主題模板。
1.ggThemeAssist包
使用ggThemeAssist包,需要先安裝shiny包。安裝好該包后,在RStudio界面選擇“Tools”→“Addins”→“ggplot Theme Assistant”選項,彈出界面如圖1-6-24所示。具體使用方法:首先運行函數要畫圖的ggplot2代碼,以加載到內存;然后選中該畫圖函數,如ggplot;再選擇“Tools”→“Addins”“ggplot Theme Assistant”選項,就會出現一個交互式的shiny彈窗,在該彈窗上用鼠標操作;在彈窗中處理完后,點擊右上角的“Done”按鈕,就將主題代碼輸出到需要的位置,最后對代碼進行微調即可。但是需要注意的是:有的地方可能會少括號或引號。

圖1-6-24 ggplot Theme Assistant操作界面
2.套用主題模板
R語言的主題模板包包括ggthemes、ggtech、ggthemer、ggsci、cowplot等。其中ggsci包就是專門為學術圖表開發的包。R ggplot2自帶的主題模板也有多種,包括theme_gray()、theme_minimal()、theme_bw()、 theme_light()、theme_test()、theme_classic()等函數。相同的數據及數據格式,可以結合不同的圖表風格,如圖1-6-25所示。下面挑選幾種具有代表性的圖表風格講解:

圖1-6-25 不同的圖表風格
(1)圖1-6-25(a)是R ggplot2風格的散點圖,使用R ggplot2 Set3的顏色主題,繪圖區背景填充顏色為RGB(229, 229, 229)的灰色,以及白色的網格線[主要網格線的顏色為RGB(255, 255, 255),次要網格線的顏色為RGB(242, 242, 242)]。這種圖表風格給讀者清新脫俗的感覺,推薦使用在PPT演示中;
(2)圖1-6-25(d)的繪圖區背景填充顏色為RGB(255,255, 255)的白色,無主要和次要網格線,沒有過多的背景信息。當圖表尺寸較小時,仍然可以清晰地表達數據內容,不像圖1-6-24(b)會因為背景線條太多而顯得凌亂,其常應用在學術期刊的論文中展示數據。
(3)圖1-6-25(e)在圖1-6-25(d)的基礎上,將繪圖區邊框設定為“無”,也沒有主要和次要網格線,同樣常應用在學術期刊的論文中展示數據。
所以,總地來說,圖1-6-25(a)和圖1-6-25(b)的風格適合PPT演示,圖1-6-25(d)和圖1-6-25(e)適合于學術論文展示。其實,不管是使用R、Python,還是Origin、Excel,都可以通過調整繪圖區背景、主要和次要網格線、坐標軸線條等的格式,實現如圖1-6-25所示的6種不同的圖表風格。
- Raspberry Pi for Python Programmers Cookbook(Second Edition)
- 數據庫系統教程(第2版)
- ReSharper Essentials
- Python入門很簡單
- WebAssembly實戰
- Implementing Cisco Networking Solutions
- bbPress Complete
- HTML5從入門到精通(第4版)
- 常用工具軟件立體化教程(微課版)
- PHP+Ajax+jQuery網站開發項目式教程
- Python爬蟲、數據分析與可視化:工具詳解與案例實戰
- Flowable流程引擎實戰
- Python應用與實戰
- Java從入門到精通(視頻實戰版)
- Java設計模式深入研究