資料視覺化一直是資料分析很重要的一環,因為 R 在關於資料視覺化有許多強大的套件,也造成 R 受到大眾喜愛的原因之一,像是之前介紹的 ploty,已經被推薦無數次的 ggplot2,今天要介紹另外一個資料視覺化的套件 googleVis,googleVis 顧名思義就是 google 類型的視覺化套件,基本上是 google analytics 上的圖表都可以利用 R 繪製出來。今天要介紹這個套件有什麼特別的圖表可以用。
R 套件: googleVis
讓 R 的使用者可以在 R 上繪製與 google analysis 上一樣的圖表,更甚至的可以更靈活的修該統計圖表,讓呈現時可以更加清楚。有趣的是畫出來的圖片並不是以圖片的方式,而是用 HTTP 格式的圖表,這種呈現方式有優點也有缺點,優點是可以像 ploty 讓使用者有即時互動的感覺,但是缺點就是在呈現書面報告的時候會喪失部分資訊,並且只能在 local 端看到該網頁,也沒有像 ploty 一樣有方便的方式可以上傳到免費的伺服器。
R 實作
install.packages("googleVis") library(googleVis) # 因為 googleVis 有內建地圖的圖片,所以在繪製地理類型的資料會比較方便 df=data.frame(country=c("US", "GB", "BR"), val1=c(10,13,14), val2=c(23,12,32)) Intensity <- gvisIntensityMap(df) plot(Intensity)
require(datasets) states <- data.frame(state.name, state.x77) GeoStates <- gvisGeoChart(states, "state.name", "Illiteracy", options=list(region="US", displayMode="regions", resolution="provinces", width=600, height=400)) plot(GeoStates)
GeoMarker <- gvisGeoChart(Andrew, "LatLong", sizevar='Speed_kt', colorvar="Pressure_mb", options=list(region="US")) plot(GeoMarker)
# 也可以使用 Google Map 來繪製上面的圖片 AndrewMap <- gvisMap(Andrew, "LatLong" , "Tip", options=list(showTip=TRUE, showLine=TRUE, enableScrollWheel=TRUE, mapType='terrain', useMapTypeControl=TRUE)) plot(AndrewMap)
# 關於流量類型資料分的的圖 datSK <- data.frame(From=c(rep("A",3), rep("B", 3)), To=c(rep(c("X", "Y", "Z"),2)), Weight=c(5,7,6,2,9,4)) Sankey <- gvisSankey(datSK, from="From", to="To", weight="Weight", options=list( sankey="{link: {color: { fill: '#d799ae' } }, node: { color: { fill: '#a61d4c' }, label: { color: '#871b47' } }}")) plot(Sankey)
# 日曆類型的圖 Cal <- gvisCalendar(Cairo, datevar="Date", numvar="Temp", options=list( title="Daily temperature in Cairo", height=320, calendar="{yearLabel: { fontName: 'Times-Roman', fontSize: 32, color: '#1A8763', bold: true}, cellSize: 10, cellColor: { stroke: 'red', strokeOpacity: 0.2 }, focusedCellColor: {stroke:'red'}}")) plot(Cal)
結論
在 googleVis 上有更多好用的函數,上面只是列舉一些小編覺得少見的並且方便的圖,在這份文件 https://cran.r-project.org/web/packages/googleVis/googleVis.pdf 中有更多詳細的功能提供大家參考。