簡介

? ? ?Plotly是一個(gè)基于JavaScript技術(shù)的一項(xiàng)開源項(xiàng)目,官網(wǎng)用一句話介紹了這組工具的功能:The open source JavaScript graphing library that powers plotly——一項(xiàng)利用JavaScript技術(shù)的開源增強(qiáng)型繪圖工具庫。并且其開發(fā)了多種平臺(tái)的API接口,包括Python,MATLAB,Excel,Ruby以及我這里用到的R平臺(tái)等等。提供的圖像類型十分豐富,并且安裝配置起來也十分方便。
而我自己本人也是由于最近的一項(xiàng)項(xiàng)目的分析結(jié)果想要找到一個(gè)比較好的可視化表現(xiàn)效果,google了一些相關(guān)的資料之后,才發(fā)現(xiàn)了這么一個(gè)十分好用的工具,使用之后發(fā)現(xiàn)效果不錯(cuò),在這里分享一下使用方法與相關(guān)代碼。
在R環(huán)境下,直接在CRAN里安裝即可。
install.packages('plotly')
library(plotly)
packageVersion('plotly')#輸入可查看包的版本
1.繪制一個(gè)基本的3D表面圖
調(diào)用R自帶的一組火山數(shù)據(jù)
data('volcano')
View(volcano)#查看數(shù)據(jù)情況

這組數(shù)據(jù)是一組矩陣,直接運(yùn)行:
p1=plot_ly(z=~volcano)%>%add_surface()
p1
在Rstudio就可以直接產(chǎn)生結(jié)果,并且可以在Rstudio中直接進(jìn)行交互式操作


2.繪制2維數(shù)據(jù)的3D密度估計(jì)圖
library(MASS)
data(geyser)
View(geyser)#是一組來自于MASS包的二維的分布數(shù)據(jù),分布值不連續(xù)且各維度取值有重復(fù),故可以進(jìn)行密度分布估計(jì)
kd<-with(geyser,kde2d(duration,waiting,n=50))#對(duì)數(shù)據(jù)進(jìn)行核密度估計(jì),n可以調(diào)節(jié)密度估計(jì)結(jié)果的平滑程度,返回值為一組三維的list
p2<-plot_ly(x=kd$x,y=kd$y,z=kd$z)%>%add_surface()#直接進(jìn)行繪制
p2

3.繪制出分層效果
這里用到了一個(gè)99X99的2維矩陣new_mt,矩陣的數(shù)值代表一個(gè)概率值。
n1=new_mt+1#定義一個(gè)上層的矩陣
n2=new_mt-1#再定義一個(gè)下層的矩陣
p3=plot_ly(showscale=FALSE)%>%add_surface(z=~new_mt)%>%add_surface(z=~n1,opacity=0.95)%>%add_surface(z=~n2,opacity=0.9)#opacity參數(shù)代表模糊程度,0~1進(jìn)行設(shè)置。
p3

以上就是對(duì)這個(gè)包繪制3D圖的基本介紹,值得一提的是,在R中可以直接將圖輸出保存為網(wǎng)頁html的形式,方便展示

附plotly官網(wǎng)對(duì)該庫的介紹: