(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)

圖1 所用數據

圖2 ggplot2作出的圖

2.利用ggplotly函數製作出交互圖表

就一行函數

ggplotly()

圖3 效果圖

這樣就做出了交互圖表。

右上角的按鈕還能實現很多功能,都很簡單易懂,比如,圖 4;

圖4

單擊圖例,還可以實現以下效果:

圖5 單擊圖例後的效果

二、如何將製作好的可交互圖表導出作為HTML文件

如果我們要展示給別人看的,那在Rstudio中展示還是偏少的,所以嘗試導出HTML文件來看看。

有兩種方法,先說簡單的。

方法1.直接利用Rstudio導出

單擊圖片上方的Export,展開後,再點擊Save as Web Page,如圖6。

圖6

再在文件名那裡輸入"文件名.html",即可,如圖7。

圖7

然後用Microsoft Edge打開,能交互,大功告成。

圖8

方法2.利用htmlwidgets::saveWidget()函數

利用htmlwidgets::saveWidget()就可以將圖表保存為html形式了,但是由於這個函數針對的對象是htmlwidget,所以要先將圖錶轉化為htmlwidget格式,所以要用到as_widget()函數轉化。

pic2 <- ggplotly() #先將交互圖表保存為pic2htmlwidgets::saveWidget(as_widget(pic2),2.html)

一樣成功了。

圖9


推薦閱讀:

數據分析神器Tableau——讓你的數據會說話
預測:國內可視化數據分析工具2018功能趨勢
可視化辭典 Visual vocabulary
R語言互動式可視化包CanvasXpress
人民日報中央廚房獲評「2017年大數據優秀應用案例」

TAG:R編程語言 | 數據可視化 | 可視化 |