您现在的位置:主页 > 数据可视化 > R语言与Tableau集成之可视化应用

R语言与Tableau集成之可视化应用

2017-06-19 16:00

Tableau是一款非常棒的数据可视化商业软件,通过拖拉拽的方式迅速的实现数据可视化。而且该软件可以连接任何一种数据库,在处理大型数据时一点都不逊色。下面展示几幅Tableau绘制的图形:

面积图、条形图的综合使用。

该图反映的是2014年全球饥饿指数,将数据绘制在地图中。

这是一幅飓风行走的路径图,粗细反映了飓风的风速。

这是一幅非常流行的桑基图。

从上面的几幅图中发现,该软件作图效果还是非常炫酷的遗憾的是,其无法从事数据分析和挖掘工作,即无法直接将数据分析或挖掘的结果进行可视化。幸运的是,从Tableau的8版本开始,Tableau与R语言打通,可以在Tableau中运行R脚本,从而将R语言的分析或挖掘结果在Tableau中展示,可谓强强联手,所向披靡。

下文就跟大家说说如何实现Tableau和R语言的联手,绘制联手后的可视化。首先需要在R中下载Rserve包,通过该包,实现两个软件的打通。

install.packages(‘Rserve’)

library(Rserve)

这里必须使用下面函数,表示启动R服务器

Rserve()

其次,通过Tableau连接R语言。

在Tableau界面下连接R语言:“帮助”——“设置和性能”——“管理R连接”,输入服务器及端口号即可成功连接(这里的服务器是本地机算计,故服务器填’localhost’)。如下图所示:

上图显示R语言与Tableau连接成功。完成前面两步后,最后实战一下二合一的效果,具体请看下图。

一、如何将统计学意义的异常值寻找出来?

通过R创建异常值字段:

字段脚本如下:

IF SUM([利润]) > SCRIPT_REAL(

‘quantile(.arg1,0.75)+1.5*IQR(.arg1)’,

  1. SUM([利润])) OR

SUM([利润]) < SCRIPT_REAL(

‘quantile(.arg1,0.25)-1.5*IQR(.arg1)’,

  1. SUM([利润]))

THEN ‘Yes’

ELSE ‘No’

END

Tableau展现结果:

上图的异常值判断标准是:超过上四分位数的1.5倍四分位距或低于下四分位数的1.5倍四分位距。

二、连续变量的预测

虽然Tableau可以直接绘制趋势线,并根据趋势线做预测,但是这仅仅是一个因变量与一个自变量之间的趋势关系,如下图绘制的利润趋势仅仅与时间维度相关:

如果影响利润的因素由销售数量、销售额和折扣率三个变量组成,该如何将回归后的预测体现在图中呢?

通过R拟合预测值:

字段脚本如下:

SCRIPT_REAL(

  1. 'fit <- lm(.arg1~.arg2+.arg3+.arg4);
  2. fit$fitted.values',
  3. SUM([利润]),SUM([数量]),AVG([折扣]),SUM([销售额])
  4. )

Tableau展示结果:

从图中的结果显示,预测与实际的趋势一致,是一个比较理想的预测模型。

三、聚类分析

聚类分析是数据挖掘中无监督的算法之一,R语言可以非常便捷的实现各种聚类算法,如K-Means、K中心、EM期望最大法、层次分析等,下面就是要K均值算法的距离结果在Tableau中展示:

字段脚本如下:

//使用k-means方法对数据进行聚类

SCRIPT_REAL(“fit <- kmeans(data.frame(.arg1,.arg2,.arg3,.arg4),centers=3);

  1. fit$cluster",
  2. SUM([Petal.Length]),SUM([Petal.Width]),SUM([Sepal.Length]),SUM([Sepal.Width]))

Tableau展示结果:

非常便捷,这就轻松搞定聚类结果的可视化。

如果你手头有学生版的Tableau或试用期内的Tableau或工作中正在使用,不妨试试Tableau与R语言的结合,这会让你感叹不已:强大的可视化工具与强大的统计分析工具让你的工作变得更加高效和方便。

有关Tableau文件可至如下链接下载

https://yunpan.cn/cx8LjsxzV7SQ4 访问密码 2aba

还有一篇文章值得推荐:《关联Tableau与R:对美国98个大城市交通情况的实时展现》

http://blog.sina.com.cn/s/blog_955839f10102vs3c.html

 

作者:刘顺祥,数据分析师,热爱数据分析与挖掘工作,擅长使用R语言,目前自学Python语言。

来源:http://shujuren.org/article/13.html