您好,登錄后才能下訂單哦!
這篇文章給大家介紹R語言可視化中ggplot攜手plotly如何讓圖表靈動起來,內容非常詳細,感興趣的小伙伴們可以參考借鑒,希望對大家能有所幫助。
這段時間一直在研究ggplot2這個神奇的可視化利器,可是ggplot2縱然所向披靡,唯獨無法呈現動態效果!
最近發現R語言的官方CRAN中有一款名叫plotly的包,詳細了解了下,這個plotly是基于js腳本語言開發的專用于動態交互可視化的利器,開發有在線版和桌面本,而且效果相當不錯!
而這里提到的plotly包就是該機構專門針對R語言環境發布的可視化包(具有不僅R語言,給MATLAB和Python都留有接口),不但可以協助ggplot2包將靜態圖表動態化,而且擁有自己獨特的作圖函數語法(語法非常精煉,據說是參考ggplot的語法寫的,基本上一看就懂)。
今天只涉及ggplot結合plotly而動態化圖表的功能,暫不涉及plotly的獨有作圖函數。(主要是自己也正摸索中,找個合適的時間再跟大家分享)。
這個包因為是輔助ggplot2開發的,所以需要ggplot2包同時加載協同工作。
包下載及加載:
devtools::install_github("ropensci/plotly")
library("plotly")
library(ggplot2)
這里我將使用ggplot2的內置數據集diamonds先做出圖表,然后使用plotly函數進行動態化。
為了更加明顯的看出最終的動效,這里使用隨機取樣,只抽取500個記錄。
set.seed(2333)
mydata <- mydata[sample(nrow(mydata), 500), ]
head(mydata)
ggplot(mydata,aes(carat,price,colour=color))+geom_point()
接下來是我們要重點關注的地方,以上使用ggplot函數制作的默認的散點圖,是一張靜態的不帶任何交互效果的圖表。
盡管ggplot的作者在圖表背后針對默認的圖表主題及背景做了深度美化,但是沒有動態效果這一點兒著實讓人感覺有點兒美中不足:
我所說的動態效果是指:當鼠標懸浮到任何一個數據點,立馬會有彈出文本框顯示該數據點的具體指標信息,當鼠標點擊圖例中的分類標識時,顯示對應分類項下的數據點,而其他未被選中的數據點均會自動隱藏或者淡化(變成淺灰色)。這是我所理解的動態圖表的最基礎屬性。
但是有了plotly包的輔助,ggplot所做出來的圖表立馬可是實現以上所述的功能:
而所需要的函數卻極其簡單:
ggplotly()
運行完以上代碼,再次zoom你的圖表,仔細觀察你會發現,圖表右上角多出了一行菜單,而且當你將鼠標懸浮在任意一個數據點上時,立馬回彈出對應的文本信息對對應數據點進行詳細注釋。
更加不可思議的是,當你用鼠標單擊右側圖例對應分類項,則圖表中會對應只顯示選中的分類項目數據點;
右上角的菜單中你可以自由選擇將圖表聚焦呈現、放大縮小、保存為圖片等多種功能。
下面是我錄制的一個動態小視頻,可以感受下plotly帶給ggplot的動態交互體驗:
而且這種動態效果機會不受ggplot圖表類型及版面的限制,在分面情況下,動態效果依然如故:
ggplot(mydata,aes(carat,price,colour=color))+geom_point()+theme_economist()+scale_colour_economist()+facet_wrap(~cut)
ggplotly()
以上圖表中加入了經濟學人的主題及配色模板,動態效果依然還在,有了這種動態效果,展示呈現多維數據方面,省去了不少麻煩,特別是分類較多時,一時半會很難弄清楚某種分類的整體分布情況,而通過動態選擇,可以很容易的過濾掉暫時無關的分類項對信息獲取的障礙。
關于R語言可視化中ggplot攜手plotly如何讓圖表靈動起來就分享到這里了,希望以上內容可以對大家有一定的幫助,可以學到更多知識。如果覺得文章不錯,可以把它分享出去讓更多的人看到。
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。