【反思】學習的路徑:厚積薄發(fā)
最近一段時間,一直在自學生物信息學。由于白天還有繁重的科研任務,只能每天晚上回家后,在10: 00-12:00之間安排時間學習。經(jīng)過近兩個月的學習,已經(jīng)熟悉了Linux的常規(guī)操作,學了一點R語言基礎和ggplot2的基本使用方法。
由于自己時間有限,就一直跟著《基因課》的網(wǎng)絡課程學習。可是時間長了,慢慢發(fā)現(xiàn)了問題。《基因課》的課程幾分鐘一節(jié),視頻演示某一操作,而對相關背景知識介紹的不太全面。很多時候,跟著視頻一步一步操作,確實能得到相同的結果,但是這背后的原因就不太清楚了,理解的當然就不透徹。等到應用的時候,當然不會融會貫通。
學習真的是偷不得半點懶的,每一步路都要腳踏實地。該吃的苦,該流的汗,一點都不能少。
對于正在學習的ggplot2,還是決定找一本經(jīng)典的教材,一邊學習教材中的基礎知識,一邊進行《基因課》相關課程的學習,以加深自己的理解。于是選擇了這本經(jīng)典的《ggplot2:數(shù)據(jù)分析與圖形藝術》,邊學習邊做筆記總結。
ggplot2的圖形語法
ggplot2作圖的規(guī)則是根據(jù)圖形語法設計的,這一語法基于《Grammar Graphics》一書,由一系列獨立的圖形部件組成,并能以許多種不同的方式組合起來。這一點使得ggplot2非常強大,使得使用者可以根據(jù)自己的需要,將各種不同的圖形部件進行組合,繪制出具有特色的圖形。
一張統(tǒng)計圖就是從數(shù)據(jù)到幾何對象的圖形屬性的映射,并將圖形繪制在某個坐標系中。其中,繪制圖形前,數(shù)據(jù)可能需要進行統(tǒng)計變換;繪制圖形時,還可能需要分面以生成數(shù)據(jù)不同子集的圖形。
ggplot2的圖形部件
- 數(shù)據(jù)(data)
- 映射(mapping)
- 幾何對象(geom):在圖中實際看到的圖形元素,點、線、多邊形
- 統(tǒng)計變換(stats):是對數(shù)據(jù)進行的某種匯總。例如,將數(shù)據(jù)分組以創(chuàng)建直方圖,或?qū)⒁粋€二維的關系用一個線性模型進行解釋。
- 標度(scale):將數(shù)據(jù)的取值映射到圖形空間,例如用顏色、大小、或形狀表示不同的取值。展現(xiàn)標度最常見的做法是繪制圖例和坐標軸,它們實際上是從圖形到數(shù)據(jù)的一個映射,是讀者可以從圖形中讀取原始的數(shù)據(jù)。
- 坐標系(coord):描述了數(shù)據(jù)是如何映射到圖形所在的平面的,同時提供了看圖所需要的坐標軸和網(wǎng)格線。
- 分面(facet):描述了如何將數(shù)據(jù)分為各個子集,以及如何對子集進行作圖并進行聯(lián)合展示。