qplot()的局限在於它只能使用一個資料集和一組圖形屬性對應,解決這個問題的辦法就是使用圖層。每個圖層可以有自己的資料集合圖形屬性對應,附加的資料元素可通過圖層添加到圖層中。
一個圖層主要由5個部分組成:資料、一組圖形屬性對應、幾何對象、統計變換和位置調整。 1. 建立繪圖對象
當調用qplot()時,它其實做了很多幕後工作:建立一個繪圖物件,添加圖形並且展示結果。
若要手動建立繪圖物件,要用到ggplot()函數。該函數主要有兩個主要參數:資料和圖形屬性對應。這兩個參數被設為繪圖的預設參數,只有在新添加的圖層裡設定了新參數時,預設值才會被修改。
參數資料指定繪圖所用的預設資料集(必須是資料框);
參數映射的設定方法與qplot()非常類似,只需要將圖形屬性和變數名放到函數aes()的括弧裡面即可。
p<-ggplot(diamonds,aes(carat,price,colour=cut))
這個繪圖物件在加上圖層之前是無法顯示的 2. 圖層
圖層的預設參數有:layer(geom,geom_params,stat,stat_params,data,mapping,position)
最簡單的圖層莫過於只設定一個幾何對象,例p<-p+layer(geom=”point”)
更複雜的可以設定為:
p<-ggplot(diamonds,aes(x=carat))p<-p+layer( geom="bar", geom_params=list(fill="steelblue"), stat="bin", stat_params=list(binwidth=2))p
可以看出上述代碼比較繁瑣,可以簡化上面的代碼。因為每一個幾何對象都對應著一個預設的統計變化和位置參數,每一個統計變化對應著一個預設的幾何對象參數,因此只需設定stat或geom參數即可,則上述代碼可寫為:geom_histogram(binwidth=2,fill=“steelblue”) 3. 資料 4. 資料圖形映射 5. 集合對象 6. 統計變換 7. 位置調整 8. 整合