用plotly包创建交互式网页图形

发布时间: 2015-12-28 阅读数: 5521

R的plotly包是一个基于浏览器的交互式图表库,它建立在开源的JavaScript图表库plotly.js之上。它通过HTML widgets框架完全在本地上运行。把结果上传到plotly账户,可以查看交互图及相应的数据,并进行修改。

library(plotly) 
library(ggplot2)  
set.seed(100)  
d <- diamonds[sample(nrow(diamonds), 1000), ]  
plot_ly(d, x = carat, y = price, text = paste("Clarity: ", clarity),mode = "markers", color = carat, size = carat)

注:ggplot2包需要安装最新的2.0.0版本,如果RStudio版本太低请直接在R上演示。

plotly图是可交互的。单击拖动可以放大,按下shift键单击可以移动,双击可自动缩放。

熟悉并喜欢用ggplot2? 那就试试ggplotly

p <- ggplot(data = d, aes(x = carat, y = price)) +
  geom_point(aes(text = paste("Clarity:", clarity)), size = 4) +
  geom_smooth(aes(colour = cut, fill = cut)) + facet_wrap(~ cut)

(gg <- ggplotly(p))

对数据进行混合操作并可视化相应结果

plotly对象是一个plotly类的数据框,并且追踪数据到可视化属性的映射

 str(p <- plot_ly(economics, x = date, y = uempmed))

## Classes 'plotly' and 'data.frame':   478 obs. of  6 variables:
##  $ date    : Date, format: "1967-06-30" "1967-07-31" ...
##  $ pce     : num  508 511 517 513 518 ...
##  $ pop     : int  198712 198911 199113 199311 199498 199657 199808 199920 200056 200208 ...
##  $ psavert : num  9.8 9.8 9 9.8 9.7 9.4 9 9.5 8.9 9.6 ...
##  $ uempmed : num  4.5 4.7 4.6 4.9 4.7 4.8 5.1 4.5 4.1 4.6 ...
##  $ unemploy: int  2944 2945 2958 3143 3066 3018 2878 3001 2877 2709 ...
##  - attr(*, "plotly_hash")= chr "7ff330ec8c566561765c62cbafed3e0f#2"

它允许我们对数据进行混合操作,并可视化像pure(ly)、predictable、pipeable这样一些所得到的结果。这里,我们利用dplyr包中的filter函数来标记出时间序列数据中的最高峰标签:

p %>%
  add_trace(y = fitted(loess(uempmed ~ as.numeric(date)))) %>%
  layout(title = "Median duration of unemployment (in weeks)",
         showlegend = FALSE) %>%
  dplyr::filter(uempmed == max(uempmed)) %>%
  layout(annotations = list(x = date, y = uempmed, text = "Peak", showarrow = T))

3D网页图形

虽然数据框被认为是这个包的核心对象,但plotly做可视化也不一定都需要数据框。下面的图形就是通过一个数值矩阵参数z得到的3D图:

plot_ly(z = volcano, type = "surface") 


本地运行或者是发布到网络上

默认情况下,plotly得到的结果运行在你本地的浏览器或者是RStudio浏览器。通过plotly账户可以发布到网络上。对于公开的图表,plotly的托管是免费的。如果你有敏感数据,可以升级到paid plan

library(plotly)
p <- plot_ly(midwest, x = percollege, color = state, type = "box")
p
# plotly_POST publishes the figure to your plotly account on the web
plotly_POST(p, filename = "r-docs/midwest-boxplots", world_readable=TRUE)

注:ployly_POST函数发布到网络时,请先确定创建了一个plotly账户。

本文由雪晴数据网负责翻译整理,原文请参考Plotly R Library 2.0。转载请注明原文链接http://www.xueqing.tv/cms/article/93

分享到:
热门文章

REmap发布,用R绘制百度迁徙图

2015年07月23日更新 21725次阅读

学习R语言,一篇文章让你从懵圈到入

2016年05月09日更新 15399次阅读

在R中填充缺失数据—mice包

2015年12月31日更新 11843次阅读

清华大学教授:大数据时代 统计学依

2015年08月07日更新 11480次阅读

精通 R plot—第一部分:颜色

2016年01月20日更新 10744次阅读

学习Tableau的六大好处(一个

2015年12月24日更新 8611次阅读
热门课程

R语言初级课程

2015年02月20日发布 3293名学员

R语言高效数据清理工具包dplyr

2015年08月30日发布 1728名学员

R语言数据分析入门

2016年05月10日发布 1625名学员

如何用R做数据预处理

2016年06月03日发布 1180名学员

全栈数据工程师养成攻略

2016年11月08日发布 1068名学员

R语言大规模数据分析实战

2015年12月17日发布 959名学员
登录 注册