ggplot2 scale相關設置
標度設置:主要用於在ggplot畫圖后的各個圖層進行調整設置。
1、相關屬性scale設置
包括scale_size()、scale_alpha()、scale_shape()
由上面的名稱可以看出,這三個設置主要對ggplot的圖層屬性進行相關設置,包括尺寸、透明度和形狀。
以下列出該設置的主要參數:
scale_xxx(name = waiver(), breaks = waiver(), labels = waiver(), limits = NULL, range = c(1, 6),.....)
由上面參數可以看出,我們可以對該屬性進行,name命名,breaks設置組別,labels組別標簽,limits限定坐標軸范圍或組別排序,這幾個參數在大多數scale設置中基本上都會用到。range設置尺寸大小范圍,這個參數在其他設置中相對少見。
下面提供些例子作為參考:以R自帶的iris數據集作為樣本
library(ggplot2) p<-ggplot(iris,aes(Sepal.Width,Sepal.Length,size=Petal.Width)) p+geom_point()
#標准情況下畫出來的散點圖
p+geom_point()+scale_size("花瓣寬度",limits=c(0.2,0.8))
#從下圖可以看到,圖例的名稱已經被更改,同時與上圖相比,這里只顯示了部分數據,圖中點的大小也被相應的放大,這是由於使用limits參數限定,使得限定范圍以外的數據會被丟棄。
p+geom_point()+scale_size("花瓣寬度",limits=c(0.2,0.8),range=c(1,3))
#在上圖的基礎上,修改range參數后,圖中的點的大小比例再一次進行了縮放,從兩圖對比可以看出limits設置是針對數據的范圍進行裁剪,而range設置純粹的針對點的大小。
#另外,值得注意的是scale_size()基本上只作用於散點圖,同時與之對應的還有一個scale_radius()是對點進行設置半徑,相比較而言scale_radius()基本上很少用到。
#最后scale_size諸多設置也可以用scale_size_area()進行設置。
#接下來,了解下scale_alpha()相關設置,基本上和scale_size()類似
p+geom_point()+scale_alpha("花瓣寬度",breaks=c(0.2,0.4,0.6,0.8))
#強行對透明度設置自定義分組
p+geom_point()+scale_alpha("花瓣寬度",breaks=c(0.2,0.4,0.6,0.8), labels=c("很差","差","好","很好"))
#對每個分組標簽進行重新命名
#另外,scale_alpha()諸多設置也可以用scale_alpha_area()進行設置
從以上的相關設置,可以基本了解以上三個scale設置過程,以及相關參數的作用。
最后,在提一點:scale_size()和scale_alpha() 在離散型和連續型數據中都可以用,而scale_shape則只能用於離散型數據。