(R)如何利用plotly製作交互圖表,並導出為HTML文件
盡量用最簡單的函數達到預期的效果
一、如何將用ggplot2製作好的圖表直接轉化為可交互的圖表
plotly這個包自帶函數確實可以畫圖表,但是大家基本還是大部分會用ggplot2畫圖。那如何讓ggplot2畫好的圖錶快速可以做到交互可視化呢?
1.先用ggplot2畫好目標圖表
library(ggplot2)library(plotly)library(reshape2) #處理數據用的包hvgv <- read.table("clipboard")Z <- data.frame("均值方差選股"=V1,"滬深300股指"=V2)new_Z <- melt(Z)new_Z$time <- rep(1:39,2)names(new_Z) = c(類別,收益率,時間)pic1 <- ggplot(data=new_Z,aes(x=時間,y=收益率,fill=類別)) + geom_bar(stat=identity,position = dodge) + geom_hline(yintercept = c(0),colour="black") + theme_bw() + scale_x_continuous("時間",breaks = c(0,40), labels = c(2013年1月,2017年11月)) + scale_y_continuous("年化收益率",breaks = c(-2.5,0,2.5,5,7.5,10), labels = c(-250%,0%,250%,500%,750%,1000%)) + ggtitle("均值方差選股策略與滬深300指數收益率對比") + theme(legend.title = element_blank(), panel.grid = element_blank(), panel.border = element_blank(), axis.line = element_line(), plot.title = element_text(colour = black,size = 15), legend.position = bottom)ggsave(plot = pic1,file = pic1.png)
2.利用ggplotly函數製作出交互圖表
就一行函數
ggplotly()
這樣就做出了交互圖表。
右上角的按鈕還能實現很多功能,都很簡單易懂,比如,圖 4;
單擊圖例,還可以實現以下效果:
二、如何將製作好的可交互圖表導出作為HTML文件
如果我們要展示給別人看的,那在Rstudio中展示還是偏少的,所以嘗試導出HTML文件來看看。
有兩種方法,先說簡單的。
方法1.直接利用Rstudio導出
單擊圖片上方的Export,展開後,再點擊Save as Web Page,如圖6。
再在文件名那裡輸入"文件名.html",即可,如圖7。
然後用Microsoft Edge打開,能交互,大功告成。
方法2.利用htmlwidgets::saveWidget()函數
利用htmlwidgets::saveWidget()就可以將圖表保存為html形式了,但是由於這個函數針對的對象是htmlwidget,所以要先將圖錶轉化為htmlwidget格式,所以要用到as_widget()函數轉化。
pic2 <- ggplotly() #先將交互圖表保存為pic2htmlwidgets::saveWidget(as_widget(pic2),2.html)
一樣成功了。
推薦閱讀:
※數據分析神器Tableau——讓你的數據會說話
※預測:國內可視化數據分析工具2018功能趨勢
※可視化辭典 Visual vocabulary
※R語言互動式可視化包CanvasXpress
※人民日報中央廚房獲評「2017年大數據優秀應用案例」