【R語言學習筆記】探索ggplot的排列組合(一)

Ryan_Yang_發表於2017-03-31

R裡面最出名的就是ggplot作圖包了,雖然現在如果利用R畫圖一般用自帶包就可以,甚至很多圖形可以直接拿excel做(為了匹配PPT),但是R中的plot類圖形不是很美觀,並且最大的問題是很多資料、圖形和匹配無法分離,這樣的話,如果針對一個資料做多張圖,或多個資料做一張圖會有些費勁。在學習了一段時間的ggplot之後,對ggplot作圖思想有點心得,遂記錄。

關於ggplot的作圖,網上很多文章中都有介紹,這裡主要做個很有趣的實驗,暫且叫ggplot的排列組合。

然而為什麼ggplot有排列組合呢?

這就和ggplot的畫圖思想有關,關於ggplot的具體思想介紹,推薦

https://segmentfault.com/a/1190000006120665

這篇文章內容。

但是為了簡化內容,我其實就把ggplot分為兩部分:資料和畫圖

這兩部分比較好理解,資料就是畫圖的資料,畫圖就資料的展示。

所以資料的格式只有一個,比如我要畫資料a,第一步

plot_a<-ggplot(data=a)

只有一個引數,就是data,data就是資料集。

ok,有資料還不行,需要對映到圖形中,比如以自帶的mtcars資料集為例,我如果想要做散點圖,那麼(先不用管裡面的aes,稍後會介紹)

a<-ggplot(data=mtcars)
a+geom_point(aes(x=drat,y=wt))

出來的圖形為
這裡寫圖片描述

其實圖形對映裡面的內容比較複雜點,裡面主要包含四要素:
1. 圖表型別

圖表型別主要就是geom_?,中問號的東西,比如散點圖就是geom_point,柱狀圖就是geom_bar

2. 座標賦值

座標賦值就是判定圖形中的橫縱座標,因為對於資料集來說,有很多列,需要進行x=?,y=?的確定,還有一些顏色、組別等設定

3. 資料對映

資料對映就是針對x,y統計量的統計,最基本的就是一對一對映,x是什麼,y就是什麼,在圖上顯示;還有一些分組資料,可能需要對y加總,那麼就是sum,或者去重(unique)等。

4. 相對位置

這個相對位置是對畫圖過程中各圖形放在一起的位置進行排列的引數,比如對於柱狀圖來說,堆疊、堆積百分比、簇等

基於上面的分析,可以把ggplot的引數彙總成一個表:

這裡寫圖片描述
在geom下有三個引數,這四個函式本身對應四要素:aes,stat和position對應2,3,4,geom本身對應1

所以到這裡,ggplot畫圖就是個排列組合,下面準備以幾個常用的圖形進行入手,然後看看能不能探索出很奇葩的圖形,下面從散點圖開始,資料均使用mtcars。

1. 散點圖
散點圖中aes中的group雖然分組,但是散點本身就是離散的,所以這個引數意義不大;先看幾個情況:

p+geom_point(aes(x=mpg,y=disp,size=gear))

這裡寫圖片描述

p+geom_point(aes(x=mpg,y=disp,colour=wt,size=gear))

這裡寫圖片描述

第一個圖是確定x軸為mpg,y軸為disp,然後根據gear的大小進行散點size調整。

第二個圖是在第一個圖的基礎上,對wt列的不同顏色進行區分。

最後一個散點圖,是一個很奇葩的散點圖。

先按照第二個圖的樣式,並且新增一條擬合曲線,然後

p+geom_point(aes(x=mpg,y=disp,colour=wt,size=gear))+stat_smooth(aes(x=mpg,y=disp))

嗯,很醜
這裡寫圖片描述

下週爭取每天做一個奇葩圖

相關文章