ggplot2 分面相關設置(facet)


分面設置在ggplot2應該也是要經常用到的一項畫圖內容,在數據對比以及分類顯示上有着極為重要的作用,

下面是兩個經常要用到的分面函數。

facet_wrap(facets, nrow = NULL, ncol = NULL, scales = "fixed", shrink = TRUE, as.table = TRUE, drop = TRUE)

facet_grid(facets, margins = FALSE, scales = "fixed", space = "fixed", shrink = TRUE, labeller = "label_value", as.table = TRUE, drop = TRUE)

其中facet_wrap和facet_grid不同在於facet_wrap是基於一個因子進行設置,facets表示形式為:~變量(~單元格) 

而facet_grid是基於兩個因子進行設置,facets表示形式為:變量~變量(行~列),如果把一個因子用點表示,也可以達到facet_wrap的效果,也可以用加號設置成兩個以上變量

例如:變量+變量~變量 的形式,表示對三個變量設置分面。

具體的參數(把兩個函數參數和在一起):

nrow,ncol 分面索要設置成的行和列,參數為數值,表示幾行或者幾列

scales  參數fixed表示固定坐標軸刻度,free表示反饋坐標軸刻度,也可以單獨設置成free_x或free_y

shrink  也和坐標軸刻度有關,如果為TRUE(默認值)則按統計后的數據調整刻度范圍,否則按統計前的數據設定坐標。

drop    表示是否去掉沒有數據的分組,默認情況下不顯示,邏輯值為FALSE

as.table   和小圖排列順序有關的選項。如果為TRUE(默認)則按表格方式排列,即最大值(指分組level值)排在表格最后即右下角,否則排在左上角。

margins 通過TRUE或者FALSE表示否設置而一個總和的分面變量,默認情況為FALSE,即不設置

space    表示分面空間是否可以按照數據進行縮放,參數和scales一樣

 

下面來看些具體的例子:

 

library(ggplot2)
p<-ggplot(mtcars,aes(mpg,hp))+geom_point()
p

  

p+facet_wrap(~cyl)

  

p+facet_wrap(~cyl,scales="free")

  

這里把scales 設置成free之后,可以看出每個分面都有自己的坐標刻度,當然我們也可以單獨對x軸或y軸設置。

p+facet_wrap(~carb,scales="free")

  

p+facet_wrap(~carb,scales="free",nrow=1)

  

對nrow設置后的效果圖表變得比較擁擠,正常情況下,facet_wrap自然生成的圖片都會相對比較好看。

p+facet_grid(.~cyl)

  

p+facet_grid(vs~cyl)

  

p+facet_grid(vs~cyl,scales="free",space="free")

  

從上圖可以看出把scales 和space 都設置成free之后,不僅坐標刻度不一樣了,連每個分面的大小也不一樣了。

p+facet_grid(vs~cyl,margins=TRUE)

  

相對於上面一張圖,多出一行分面,后面有all的標記,可以看出是對上兩行分面的匯總。

相對而言整個分面的設置也相對比較簡單。

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM