歡迎光臨
每天分享高質量文章

盤點 9 個適用所有學科的 R 資料視覺化包

(點選上方公眾號,可快速關註)


英文:Asha Hill,翻譯:資料派THU/王雨桐


如果最近瀏覽了R包的目錄,你會發現可用包的數量已經達到了12550個,足以讓人眼花繚亂。這意味著現有的包幾乎足以解決所有你能想象到的資料視覺化任務,從癌症基因組視覺化到圖書的視覺化分析。

 

對於R菜鳥或想提升R資料視覺化能力的人來說,CRAN目錄看起來是一種尷尬的富有——資料視覺化的包過多,不知從何入手。

 

為瞭解決這種問題,今天我們要盤點9個實用的跨學科R資料視覺化包。為了減少在本地執行R的麻煩,您可以使用 Mode的R Notebooks。


R Notebooks連結:

https://about.modeanalytics.com/notebooks/


譯者註:本文提及的包大多提供互動性操作,文中插圖僅供參考,建議訪問文中連結檢視案例,且連結中附有程式碼。


1. ggplot2

 

散點圖(Hadley Wickham/Tidyverse)

 

儘管在R中很容易完成基本繪圖,但如果需要自定義繪圖,事情就會變得複雜得多。這就是ggplot2誕生的原因:為了讓定製繪圖更容易。

 

正如其作者所言,“ggplot2解決了許多繁瑣的細節問題(比如繪製圖例),並提供了一個強大的圖形模型,這有助於輕鬆地生成複雜的多層圖形。”

 

ggplot2以《The Grammar of Graphics》這本書中的思想為基礎,將圖理解成組成完整繪圖的不同圖層。例如,在ggplot2中你可以從繪製坐標軸開始,然後加入點,線和置信區間等。

 

ggplot2的缺點是比R中的基礎畫圖要慢,並且初學者會發現上手很困難。但支持者為此辯解稱,學習ggplot2和(更普遍地說)用tidyverse處理資料,對任何使用R的資料科學家來說都有巨大的好處。(譯者註:tidyverse是為資料科學家所設計的,集合了資料處理和R的視覺化包)


作者:Hadley Wickham

詳細連結:https://ggplot2.tidyverse.org/


2. Lattice


擬合模型(Deepayan Sarkar)

 

當你需要對多變數資料進行視覺化分析時,Lattice是最佳選擇。Lattice是由Trellis graphics衍生的一個繪圖系統。他能幫你生成繪圖的平鋪面板,以用來比較給定變數的不同值或子集。(如上圖所示,這些平面圖常常看起來像花園的柵欄。)

 

Lattice是基於grid包搭建的,並繼承了grid包的大量特徵。由於grid隨後被列為基本的R包,所以R的老使用者對Lattice的邏輯不會感到陌生。


作者:Deepayan Sarkar

詳細連結:http://lattice.r-forge.r-project.org/


3. Highcharter


互動熱圖((Joshua Kunst)


Highcharter是R中Highcharts的改進,是一個JavaScript中的互動式視覺化庫。和它的前身一樣,Highcharter配備了非常強大的API。

 

Highcharter使動態圖表變得簡單。透過使用hchart()這樣一個函式,它可以繪製R中各種物件類的圖,從資料框到樹形圖再到譜系圖。它也為程式碼的編寫者提供了可行的方法以完成其他流行的Highcharts圖,如Highstock(繪製金融圖)和Highmaps(基於網路專案的原理圖)。

 

該包配有自定義的主題,以及內建的主題,如“經濟學家”、“金融時報”和“538”,便於使用者向專業人士借鑒圖表。


作者:Joshua Kunst

詳細連結:http://jkunst.com/highcharter/


4. Leaflet


GeoJSON map (RStudio)


類似於highcharter,R中的Leaflet包也是基於非常流行的同名JavaScript程式庫。

 

Leaflet提供了一種簡便且有效的方法來構建互動地圖。您可能已經從《紐約時報》、《華盛頓郵報》、GitHub以及類似Mapbox和CartoDB等GIS專業網站上看到過相關地圖(以JS形式)。

 

Leaflet的R介面是由htmlwidgets框架發展而來,這使得在R Markdown documents (v2), Rstudio和Shiny apps中很容易控制並整合Leaflet地圖。


作者:Joe Cheng, Bhaskar Karambelkar, Yihui Xie 

詳細連結:https://rstudio.github.io/leaflet/


5. RColorBrewer


ROYGB Scatter (ModernData)

 

RColorBrewer很好地展示了R的一個優點:在各種圖表和地圖中調整顏色。

 

本包基於Cynthia Brewer關於在製圖中運用顏色的研究,它幫助你生成美觀的序列色、分色或定色調色盤。和Plotly搭配使用,可以得到更好的效果。


附案例連結:https://moderndata.plot.ly/create-colorful-graphs-in-r-with-rcolorbrewer-and-plotly/

作者:Erich Neuwirth

詳細連結:http://colorbrewer2.org /#type=sequential&scheme;=BuGn&n;=3


6. Plotly


線型圖(Plotly)

 

也許你知道Plotly是一個資料視覺化的線上平臺,但你是否知道可以在R或Python中應用它?

 

與highcharter類似,Plotly擅長繪製互動圖表,但它提供了一些其他包中沒有的圖表如:


  • 等值線

    https://plot.ly/r/contour-plots/

  • 蠟燭圖

    https://plot.ly/r/candlestick-charts/

  • 3D圖

    https://plot.ly/r/3d-charts/


作者:Erich Neuwirth

詳細連結:https://plot.ly/


7. sunburstR


旭日圖展示棒球資料(Kent Russell)

 

旭日圖適用於描述事件的序列,如體育資料和產品的使用者流。

 

運用旭日圖,你可以像Kerry Rodden一樣構造如圖所示的旭日圖。此類圖表是互動式的,可以幫助使用者透過強大的方式探索序列資料。


附案例連結:https://bl.ocks.org/kerryrodden /7090426

作者:Kent Russell, Kerry Rodden, Mike Bostock, Kevin Warne

詳細連結:https://www.rdocumentation.org /packages/sunburstR/versions/2.0.0


8. RGL


Iris資料的3D圖 (Duncan Murdoch)

 

想要在R中得到互動的3D圖時,可以使用RGL。它的邏輯是根據R中的基礎graphics建模的,但它是以三維形式呈現而不是二維。例如Lattice,它也受到grid包的啟發(儘管兩者在技術上並不相容)。所以對經驗豐富的R使用者來說,這非常容易上手。

 

RGL有很多炫酷的技能,包括可以選擇3D形狀、燈光效果、物體的各種質感,甚至可以運用動漫製作調整3D情景。


作者:Daniel Adler ,Duncan Murdoch

詳細連結:https://cran.r-project.org/web/packages /rgl/vignettes/rgl.html


9. Dygraphs


選定範圍的時間序列圖(RStudio)

 

此包為dygraphs提供了一個R介面。dygraphs是一個快速且靈活的JavaScript繪圖程式庫,用於探索時間序列資料集。dygraphs的強大之處在於,它具備很強的互動性,具有預設的滑鼠懸停標簽、縮放和平移等功能。他還有其他實用的互動特徵,例如同時段比較和時段選定。


但是dygraphs的互動性並不是以速度為代價:它可以處理有百萬資料點的大型資料集而不減慢它的效果。你也可以結合RColorBrewer和dygraphs來為時間序列選擇不同顏色的調色盤。


附案例:

https://rstudio.github.io/dygraphs/gallery-series-options.html

作者:Dan Vanderkam, RStudio

詳細連結:https://rstudio.github.io/dygraphs/

【關於投稿】


如果大家有原創好文投稿,請直接給公號傳送留言。


① 留言格式:
【投稿】+《 文章標題》+ 文章連結

② 示例:
【投稿】
《不要自稱是程式員,我十多年的 IT 職場總結》:http://blog.jobbole.com/94148/


③ 最後請附上您的個人簡介哈~

看完本文有收穫?請轉發分享給更多人

關註「資料分析與開發」,提升資料技能

贊(0)

分享創造快樂