R-ggplot2
ggplot2是R語言最為強大的作圖軟件包,強于其自成一派的數據可視化理念。當熟悉了ggplot2的基本套路后,數據可視化工作將變得非常輕松而有條理。
技術相關
核心理念1. 將數據,數據相關繪圖,數據無關繪圖分離
這點可以說是ggplot2最為吸引人的一點。眾所周知,數據可視化就是將我們從數據中探索的信息與圖形要素對應起來的過程。
ggplot2將數據,數據到圖形要素的映射,以及和數據無關的圖形要素繪制分離,有點類似java的MVC框架思想。這讓ggplot2的使用者能清楚分明的感受到一張數據分析圖真正的組成部分,有針對性的進行開發,調整。
2. 圖層式的開發邏輯
在ggplot2中,圖形的繪制是一個個圖層添加上去的。舉個例子來說,我們首先決定探索一下身高與體重之間的關系;然后畫了一個簡單的散點圖;然后決定最好區分性別,圖中點的色彩對應于不同的性別;然后決定最好區分地區,拆成東中西三幅小圖;最后決定加入回歸直線,直觀地看出趨勢。這是一個層層推進的結構過程,在每一個推進中,都有額外的信息被加入進來。在使用ggplot2的過程中,上述的每一步都是一個圖層,并能夠疊加到上一步并可視化展示出來。
3. 各種圖形要素的自由組合
由于ggplot2的圖層式開發邏輯,我們可以自由組合各種圖形要素,充分自由發揮想象力
基本開發步驟
1. 初始化 – ggplot()
這一步需要設定的是圖的x軸,y軸和”美學特征”。基本形式如下:
p <- ggplot(data = , aes(x = , y = ))
這一步里,設置x軸和設置y軸很好理解。那么”美學特征”又是什么呢?
舉個例子來說,下面這張散點圖里,x軸表示年齡,y軸表示身高,很好理解:
但這張圖除了展示年齡和身高的關系,還展示出每個樣本點的體重:顏色越深表示體重越大。因此體重信息和年齡身高一樣,也需要綁定到一個具體的列。這一列就是散點圖中的”美學特征”。
來看看R語言繪制代碼:
ggplot(heightweight, aes(x=ageYear, y=heightIn, colour=weightLb))+geom_point()
其中的colour參數就是該圖的”美學特征”。
再比如,下面這張柱狀圖中,x軸表示日期,y軸表示權重,很好理解:
但這張圖中每個日期對應了兩個不同的權重并采用兩個柱狀來對比,那么這個劃分依據也是另一個“美學特征”。
再看看繪制代碼:
ggplot(cabbage_exp, aes(x=Date, y=Weight, fill=Cultivar))+geom_bar(position="dodge", stat="identity")
其中的fill參數就是該圖的”美學特征”。
綜上所述,圖中的每個樣本點除了通過它的坐標位置,還可以以其他形式展示信息,比如大小,色深,分組等。而這些新形式需要綁定的列,便叫做”美學特征”。
“美學特征”的形式和x,y軸一樣是以列的形式給出,且列中元素個數和x,y軸列必然相等。它的設置也和x,y軸一樣在ggplot()函數的aes參數括號內進行。
2. 繪制圖層 – geom_bar()/geom_line()等等
上一步的主要工作是為數據可視化配置好了數據,接下來便可根據業務的需要來繪制不同的圖,如折線圖/柱狀圖/散點圖等等。具體的實現方法在后面的章節中會細致講解,這里重點提一下繪圖函數里的stat參數。這個參數是對沖突樣本點做統計,該參數默認為identity,表示保留樣本點原(y)值,還可以是sum,表示對出現在這點的(y)值進行求和等等。
3. 調整數據相關圖形元素 – scale系列函數、某些專有函數
在ggplot2中,scale標尺機制專門負責完成數據到圖像元素的映射。也許你會問,”美學特征”不是已經定義好了這個映射嗎?然而事實是”美學特征”只是選定了映射前的數據,并沒有說明具體映射到什么圖形元素。
舉個例子,假如某張表記錄了不同種類水池的長,寬,深信息。現在需要繪制不同種類下水池長和寬關系的柱狀圖,那么初始化完成的是這個映射:
而scale函數完成的是這個映射:
顯然a映射為了紅色,b映射為了藍色。
也許你還會問,我的代碼不用scale,那么映射是如何完成的呢?答曰系統有默認映射的,就像繪圖函數都有默認參數stat=identity這樣。
4. 調整數據無關圖形元素 – theme()、某些專有函數
這部分包括設置圖片標題格式,文字字體這類和數據本身無關的圖像元素。只需調用theme()函數或者某些專有函數(如annovate函數可為圖片添加注釋)便可實現。
一個圖層繪制好后便可觀察調整,然后開始下一個圖層的制作,直到整幅圖繪制完畢。
R語言可視化成品圖
說到工具,順帶提一下BI工具---FineBIFineBI是為大數據量提供數據處理、ETL、Dashboard報表展示、動態分析、報表管理的可視化分析工具。優勢是:
前端可視化簡單操作(小試牛刀):1.新建分析新建分析包括兩種類型的分析:普通即時分析和實時報表。普通即時分析:是指普通的分析模板,從cube中獲取數據,進行數據分析;實時報表:是指做出來的即時分析模板,可以對數據進行實時查看,保證數據的準確性報表創建完成之后,頁面進入數據分析設計界面,選擇組件布局為自由布局,如下圖:添加組件制作匯總表制作圖表組件布局:自適應布局&自由布局自適應布局,自動調節布局自由布局,自由選擇布局