R 互動式圖片套件 plotly

在進行資料分析時,時常會透過畫折線圖、散佈圖等等將資料視覺化的動作,方便分析者做觀察資料。然而透過圖片來瞭解資料,會出現無法得知精準數字,需要回頭檢視資料找特定筆數值,有時候會讓小編覺得有點麻煩。今天介紹的 Plotly 使用的是 ggplot2 的語法畫圖,並且可以將游標移到想知道的點,就會標出該點的 (x,y) 資料。同時 Plotly 還可以做到即時的縮放局部圖片與旋轉,想要做簡報或展示也是相當方便的工具。

R 套件: plotly

plotly 以 ggplot2 為基礎的套件,只要能夠使用 ggplot2 畫出的圖片,就可以使用 plotly 輸出成像互動網頁般的圖片,也可以透過 Rstudio 上傳到 Rstudio 的免費伺服器,分享或另作其他用途,安裝 plotly。

install.packages(“plotly”)
library(plotly)

2D 圖片

這裡以散佈圖和折線圖為例,使用的資料為 R 內建的 iris 資料繪製散佈圖,使用隨機常態變數示範。

散佈圖

這裡使用 x 軸為 Petal.Length,y 軸為 Petal.Width,並且使用不同品種使用不同顏色的點。

http://rpubs.com/longjian/266081

iris <- iris
plot_ly(iris, x = ~Petal.Length, y = ~Petal.Width, type = "scatter", color = ~Species)

折線圖

這裡創造 100 個來自常態 N(0,1) 的隨機變數繪製折線圖。

http://rpubs.com/longjian/266092

t <- rnorm(100)
x <- 1:100

dat <- data.frame(x,t)
plot_ly(dat, y = ~t, type = "scatter", mode = "lines")

3D 圖片

這裡示範繪製二元常態分配 x ~ N(0,1), y ~N(0,1), rho = 0 的曲面,3D 的圖片可以隨著游標標出水平線,而且還可以拖曳旋轉。

http://rpubs.com/longjian/266100

x <- seq(-3,3,0.1)
y <- seq(-3,3,0.1)

fxy <- function(x,y,r) {
  1/(2*pi) * exp( -( x^2 + y^2)/2 )
}
z <- outer(x,y,fxy)
h <- list( x=x, y=y, z= abs(z))
plot_ly(x = h$x, y = h$y, z = h$z) %>% add_surface()

結論

plotly 繼承了 ggplot2 漂亮的繪圖效果,並且加上類似 D3.js 的效果,讓對寫網頁完全不懂的小編來說,是一大福音。可以用這種互動式圖片解析資料,說明資料背後的故事,透過這種互動,讓自己的講解更加平易近人。是非常推薦的工具。

發表迴響

在下方填入你的資料或按右方圖示以社群網站登入:

WordPress.com 標誌

您的留言將使用 WordPress.com 帳號。 登出 /  變更 )

Google photo

您的留言將使用 Google 帳號。 登出 /  變更 )

Twitter picture

您的留言將使用 Twitter 帳號。 登出 /  變更 )

Facebook照片

您的留言將使用 Facebook 帳號。 登出 /  變更 )

連結到 %s