R语言交互式绘图包—rbokeh

发布时间: 2016-02-25 阅读数: 5547

在本篇文章,我们将在R中利用rbokeh包来创建交互式的图表(由于这个包使用的谷歌地图国内无法使用,所以本文不演示交互式的地图案例)。

bokeh是什么?

Bokeh是一个创建交互式图表和地图的python库,现在有了对应的R包,作者是Ryan Hafen。它可以很容易的创建漂亮的网页图表,并且跟Shiny完全兼容。

通常,利用bokeh来绘图需要给图形添加图层,类似于ggplot2。对于创建一个简单的图表,主要包含以下两个步骤:

  • figure()—初始化图形。它有很多参数,用来设置宽度、高度、标题和坐标轴参数
  • ly_geom()—指定你要用到的几何类型。这里有多种选择:ly_points ly_linesly_histly_boxplot等。这些函数中的参数可以用来指定点的大小,颜色以及哪些变量用来显示等

rbokeh包的安装方法:

devtools::install_github("ramnathv/htmlwidgets")
devtools::install_github("bokeh/rbokeh")

注:假定你已经安装了devtools包(install.packages("devtools")

本文用到了一个分层聚类的例子,具体参考R中的分层聚类,现在我使用rbokeh包来对它重新做可视化。

clusters <- hclust(dist(iris[, 3:4]), method = 'average')
clusterCut <- cutree(clusters, 3)

p <- figure(title = 'Hierarchical Clustering of Iris Data') %>% 
  ly_points(Petal.Length, Petal.Width, data = iris, color = Species, hover = c(Sepal.Length, Sepal.Width)) %>%
  ly_points(iris$Petal.Length, iris$Petal.Width, glyph = clusterCut, size = 13)
p

得到如下图形:

接下来,我们利用Yahoo Finance中的苹果股票数据(点击网页底部的Download to Spreadsheet链接即可下载数据)来创建一个图表:

aapl <- read.csv('aapl.csv')
aapl$Date <- as.Date(aapl$Date)
p <- figure(title = 'Apple Stock Data') %>% 
  ly_points(Date, Volume / (10 ^ 6), data = aapl, hover = c(Date, High, Open, Close)) %>%
  ly_abline(v = with(aapl, Date[which.max(Volume)])) %>%
  y_axis(label = 'Volume in millions', number_formatter = 'numeral', format = '0.00')

如下所示,我们还可以复制ggplot2facet_grid的特征。下面使用的是ggplot2包中的diamonds数据集:

diamonds <- ggplot2:: diamonds
l <- levels(diamonds$color)
plot_list <- vector(mode = 'list', 7)

for (i in 1:length(l)) {
  data <- subset(diamonds, color == l[i])
  plot_list[[i]] <- figure(width = 350, height = 350) %>%
    ly_points(carat, price, data = data, legend = l[i], hover = c(cut, clarity))
}

grid_plot(plot_list, nrow = 2)

得到如下图形:

这个包的官方文档详细介绍了更多的自定义选项,并展示了如何创建更加酷炫的可视化图形,包括元素周期表的可视化、棒球双打所有守门员位置密度的可视化。

本文由雪晴数据网负责翻译整理,原文请参考Interactive plotting with rbokeh作者Tejia Kodali。转载请注明本文链接http://www.xueqing.tv/cms/article/133

分享到:
热门文章

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

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

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

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

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

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

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

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

学习Tableau的六大好处(一个

2015年12月24日更新 19562次阅读

精通 R plot—第二部分:坐标

2016年03月15日更新 18169次阅读
热门课程

R语言初级课程

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

R语言数据分析入门

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

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

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

[直播]上海财经大学Python科

2018年01月11日发布 1438名学员

如何用R做数据预处理

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

Python训练营课前必看

2017年12月10日发布 1265名学员
登录 注册