ggplot2由淺入深——坐標軸精雕細琢

1.引言
R中的ggplot2是非常優(yōu)秀的繪圖工具,其繪制的圖形精美,可以達到專業(yè)出版物的水平,基于ggplot2的擴展包也不勝枚舉,極大的促進了ggplot2的廣泛應用。
ggplot2提供了多樣化的修改坐標軸的參數(shù),可以自定義坐標軸的刻度、標簽、刻度標簽等。本文通過財經(jīng)數(shù)據(jù)庫獲取LPR數(shù)據(jù),并使用ggplot繪制圖表。
2.獲取數(shù)據(jù)
結果如下

3.清洗數(shù)據(jù)
這里用select函數(shù)挑選所需的列,使用filter函數(shù)篩選日期在2021-01-01之后的行,使用gather函數(shù)將“寬表格”轉換為ggplot所需的“窄表格,并重命名列名稱。

4.繪圖
ggplot的語法可以概況為“+”,即把各種對圖形的設計,寫在函數(shù)里,然后“+”起來,寫在前面的,放在圖形最下層,寫在后面的,放在最上層。
在ggplot()函數(shù)中,必須要有兩個參數(shù),data指明對哪個數(shù)據(jù)表繪圖,mapping指明將那一列映射到X軸,那一列映射到Y軸。(color參數(shù)可選,指明按照那列的類別來分別標記顏色)
geom_line()+? geom_point()? 這兩個函數(shù)指明需要繪制線型圖然后再繪制點圖,故為點線疊加圖。
繪圖結果

5.精雕細琢
scale_x_date函數(shù)修改坐標軸刻度,這里把刻度修改為? ”1月“;
theme函數(shù)可以修個各種圖形的修飾,這里把x軸標簽顏色修改為黑色,旋轉-90度;
ggtitle 函數(shù)設定圖表的主標題;
labs函數(shù)修改坐標軸的標簽;
使用 ggrepel中的geom_text_repel函數(shù)來給數(shù)據(jù)點添加數(shù)字標簽,需要指定數(shù)據(jù)來源(哪個表、哪一列);

6.提升
初學者對ggplot的具體函數(shù)了解不深,難以細致的修飾圖形,ggthemeassist包提供了手動解決方案。選中ggplot代碼,點擊Addins(Rstudio中),即可彈出手動編輯框,像操作Excel繪圖一樣通過鼠標來修訂圖形。修訂完成后,Rstudio會自動把鼠標的操作轉換為代碼“+”到ggplot繪圖代碼的后面,以便循環(huán)利用。
初學者也可以使用這種方法,學習ggplot的圖形控制函數(shù)和參數(shù)。

當然,如果上面的操作顯得眼花繚亂,還有一種更簡單的方法使用ggplot。esquisse包提供了“傻瓜式”的使用ggplot的方法,可以通過工作環(huán)境、其他來源的文檔、網(wǎng)絡文檔等導入數(shù)據(jù),使用鼠標拖動列名稱來繪圖。同時“錄制”ggplot代碼,極大的方便了初學者的學習和使用。


7.總結
本文通過一個繪圖示例,介紹了ggplot繪圖的細節(jié),本文還介紹了其他兩個實用的ggplot助手ggthemeassist和esquisse。