ggplot2介紹:內容包含什麼是ggplot2、與lattice包的比較、基本概念、一個例子。 ...
1. 什麼是ggplot2?
ggplot2是用於繪圖的R語言擴展包,其理念根植於《Grammar of Graphics》一書。它將繪圖視為一種映射,即從數學空間映射到圖形元素空間。例如將不同的數值映射到不同的色彩或透明度。該繪圖包的特點在於並不去定義具體的圖形(如直方圖,散點圖),而是定義各種底層組件(如線條、方塊)來合成複雜的圖形,這使它能以非常簡潔的函數構建各類圖形,而且預設條件下的繪圖品質就能達到出版要求。
2. 與lattice包的比較
ggplot2和lattice都屬於高級的格點繪圖包,初學R語言的朋友可能會在二者選擇上有所疑惑。從各自特點上來看,lattice入門較容易,作圖速度較快,圖形函數種類較多,比如它可以進行三維繪圖,而ggplot2就不能。ggplot2需要一段時間的學習,但當你跨過這個門檻之後,就能體會到它的簡潔和優雅,而且ggplot2可以通過底層組件構造前所未有的圖形,你所受到的限制只是你的想象力。
建議兩種繪圖包都可以研究一下。如果時間緊張,需要在一兩天之內為論文做一張圖,那麼推薦用lattice,如果時間充裕,推薦學習ggplot2。
3. 基本概念
- 圖層(Layer):如果你用過photoshop,那麼對於圖層一定不會陌生。一個圖層好比是一張玻璃紙,包含有各種圖形元素,你可以分別建立圖層然後疊放在一起,組合成圖形的最終效果。圖層可以允許用戶一步步的構建圖形,方便單獨對圖層進行修改、增加統計量、甚至改動數據。
- 標度(Scale):標度是一種函數,它控制了數學空間到圖形元素空間的映射。一組連續數據可以映射到X軸坐標,也可以映射到一組連續的漸變色彩。一組分類數據可以映射成為不同的形狀,也可以映射成為不同的大小。
- 坐標系統(Coordinate):坐標系統控制了圖形的坐標軸並影響所有圖形元素,最常用的是直角坐標軸,坐標軸可以進行變換以滿足不同的需要,如對數坐標。其它可選的還有極坐標軸。
- 位面(Facet):很多時候需要將數據按某種方法分組,分別進行繪圖。位面就是控制分組繪圖的方法和排列形式。
4. 一個例子
下麵用ggplot2包內帶的汽車測試數據(mpg)來舉個例子,用到的三個變數分別是發動機容量(displ)、高速公路上的每加侖行駛里數(hwy)、汽缸數目(cyl)。首先載入ggplot2包,然後用ggplot定義第一層即數據來源。其中aes參數非常關鍵,它將displ映射到X軸,將hwy映射到Y軸,將cyl變為分類數據後映射為不同的顏色。然後使用+號添加了兩個新的圖層,第二層是加上了散點,第三層是加上了loess平滑曲線。
library(ggplot2) ggplot(data=mpg,aes(x=displ,y=hwy,colour=factor(cyl)))+ geom_point() + geom_smooth()
簡短的介紹到這裡,詳細的介紹請看http://www.open-open.com/lib/view/open1410081720011.html,文章摘自該網站。