【R語言學習筆記】探索ggplot的排列組合(一)
R裡面最出名的就是ggplot作圖包了,雖然現在如果利用R畫圖一般用自帶包就可以,甚至很多圖形可以直接拿excel做(為了匹配PPT),但是R中的plot類圖形不是很美觀,並且最大的問題是很多資料、圖形和匹配無法分離,這樣的話,如果針對一個資料做多張圖,或多個資料做一張圖會有些費勁。在學習了一段時間的ggplot之後,對ggplot作圖思想有點心得,遂記錄。
關於ggplot的作圖,網上很多文章中都有介紹,這裡主要做個很有趣的實驗,暫且叫ggplot的排列組合。
然而為什麼ggplot有排列組合呢?
這就和ggplot的畫圖思想有關,關於ggplot的具體思想介紹,推薦
這篇文章內容。
但是為了簡化內容,我其實就把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))
嗯,很醜
下週爭取每天做一個奇葩圖
相關文章
- 【R語言學習筆記】探索ggplot的排列組合:線圖(一)R語言筆記
- 組合語言學習筆記組合語言筆記
- R語言學習筆記之一R語言筆記
- 組合數學筆記-排列與組合筆記
- acm-排列組合學習筆記(更新中)ACM筆記
- 組合語言學習筆記(十二)-浮點指令組合語言筆記
- 《組合語言》王爽,學習筆記(子程式呼叫)組合語言筆記
- 組合語言零基礎入門學習筆記(一)組合語言筆記
- 組合語言-學習記錄(二)組合語言
- 【R語言學習筆記】若干排序問題R語言筆記排序
- R語言學習筆記:基礎知識R語言筆記
- 組合語言學習筆記03——暫存器(CPU工作原理)組合語言筆記
- 《組合語言》王爽,學習筆記(標誌暫存器下)組合語言筆記
- 組合語言學習記錄--第一個彙編程式組合語言
- R語言data manipulation學習筆記之subset dataR語言筆記
- 【學習筆記】組合數學筆記
- 組合數學學習筆記筆記
- 【數學】組合數學 - 排列組合
- 《JavaScript語言精粹》學習筆記一JavaScript筆記
- 讀書寫筆記-王爽《組合語言》筆記組合語言
- 組合語言學習記錄--輸入輸出字串組合語言字串
- Solidity語言學習筆記————32、建立合約Solid筆記
- 【R語言學習筆記】文件讀取和型別修改R語言筆記型別
- C 語言學習筆記筆記
- C語言學習筆記C語言筆記
- 應用統計學與R語言實現學習筆記(七)——擬合優度檢驗R語言筆記
- go語言學習筆記(一):*和&的區別Go筆記
- 組合最佳化 學習筆記筆記
- Dart語言學習筆記(一) —— Dart簡介Dart筆記
- R語言的初級學習R語言
- 讀書筆記:組合語言(王爽)實驗七筆記組合語言
- Solidity語言學習筆記————35、抽象合約和介面Solid筆記抽象
- Solidity語言學習筆記————44、合約的後設資料Solid筆記
- R語言結合H2O做深度學習R語言深度學習
- 排列組合
- 【C++學習筆記】型別組合C++筆記型別
- 【R語言學習筆記】關於提取各類模型值的意外發現R語言筆記模型
- Solidity語言學習筆記————13、固定大小位元組陣列Solid筆記陣列