R 資料視覺化套件 - googleVis

資料視覺化一直是資料分析很重要的一環,因為 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)

sample1

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)

sample2

GeoMarker <- gvisGeoChart(Andrew, "LatLong", 
                          sizevar='Speed_kt',
                          colorvar="Pressure_mb", 
                          options=list(region="US"))
plot(GeoMarker)

sample3

# 也可以使用 Google Map 來繪製上面的圖片

AndrewMap <- gvisMap(Andrew, "LatLong" , "Tip", 
                     options=list(showTip=TRUE, 
                     showLine=TRUE, 
                     enableScrollWheel=TRUE,
                     mapType='terrain', 
                     useMapTypeControl=TRUE))

plot(AndrewMap)

sample4

# 關於流量類型資料分的的圖
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)

sample5

# 日曆類型的圖

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)

sample6

結論

在 googleVis 上有更多好用的函數,上面只是列舉一些小編覺得少見的並且方便的圖,在這份文件 https://cran.r-project.org/web/packages/googleVis/googleVis.pdf 中有更多詳細的功能提供大家參考。

發表迴響