当PowerBI遇到R语言

PowerBI作为微软系最新的商务智能办公系统,自去年发布以来,一直都备受瞩目。

他的更新频次相当之高,功能更新迭代非常迅速。

大概对可视化领域稍有涉猎的朋友们,都明白其中缘由,大数据与云计算的趋势席卷全球,海量数据处理成为了限制各行业发展的掣肘。而受制于编程工具的门槛,大部分数据处理业务人员,可能要严重依赖Excel以及其他无需编程的可视化自助操作软件。

以上需求也称为自助式BI工具,也就是无需IT人员主导的、业务人员可自行操作的商务智能工具。

而目前这个领域,Tableau的成功商业化使其已经赢得先机,广大的用户基础以及多次功能迭代,无论是在可视化呈现形式还是报表的质量上都可圈可点。

微软帝国必须亮出必杀技了(为什么没有盖茨的软件在什么事情上都落后一拍,移动操作系统、搜索、智能终端),前期在office2013版就已推出PowerQuery、PowerPivot、PowerView、PowerMap等四款高质量插件。

在最新的Excel2016版中更是将其封装成内置程序(这样就不用自己配置各种环境啦),同时将四件套整合,建立了PowerBI的在线平台和桌面端工具PowerBI Desktop。

虽然PowerBI的可视化图表类型和质量(受制于开发周期和市场经验)还不够完善,但是免费呀(Tableau据说几千刀呢)……这一条就够啦……

当然PowerBI自出生始就含着金汤勺,地图库是对接的BingMap,依靠PowerQuery的支持具备强大的数据源获取能力、依靠PowerPivot的支持又增添了功能强大的数据建模处理能力,PowerView与PowerMap结合基本上可以解决大部分的可视化形式。

除此之外,PowerBI的在线社区允许广大开发者贡献高质量的、令人眼花缭乱的新型可视化对象。(你以为PowerBI只有内置的那几款图表对象吗,去他的社区看一看吧,里面能淘到很多好东西)。

第三方可视化库网址:

https://app.powerbi.com/visuals/

这些可视化视觉对象在社区中被划分为两类:

  • Custom visuals
  • R-powered visuals

今天要跟大家分享的内容仅包含内置视觉对象中的R脚本和在线社区的R风格视觉对象。

下面是干货~


最近试用了PowerBI的R语言脚本对象功能,虽然用着很蹩脚,但是作为微软商务智能系统开始尝试对接主流统计学编程语言的开始,这一步还是很有意义的。

接下来就针对我所经历的使用体验跟大家分享一下(其实还是吐槽居多):

PowerBI中支持的R相关的图表有两类:

  • 一类是需要在R中自建脚本代码执行,插入R图形对象来显示输出结果的形式。
  • 另一类是PowerBI线上社区以及官方平台引用并借鉴优秀的R语言可视化包所封装的PowerBI视觉对象。

第一种需要大家有R基础,会书写图形代码。导入数据集后,输入并运行R代码即可在PowerBI页面生成R语言风格的可视化图表。(当然既然是运行的R代码,前提你PC上肯定得事先安装好R的Gui程序,如果有Rstudio的话,PowerBI也是支持调用的。)

这种方式基本相当于把PowerBI作为R的第三方IDE了,不过现在称它为R的第三方IDE确实为时过早,因为……

它的代码运行效率和操作体验简直不能再烂,别说RStudio,就连R的官方Gui界面都要比它好用好几倍……

  • 代码时效速度超级慢;
  • 需要事先导入数据集;
  • 只能在数据对象中显示图形对象而无法显示文本信息;

接下来我运行几段程序作为案例演示:

自建R脚本需要在开始——获取数据——插入RScript对象:

在弹出的执行R脚本输入框中以R代码的形式获取数据:

data(mtcars)

待连接成功后,导入数据集:

数据模型加载完成后,在PowerBI右侧的字段列表中会列出数据集的所有可用字段,在左侧左上角表格栏目可以展示并预览整个数据观测值。

数据集导入之后,在可视化图表对象中选择R脚本,并插入,同时将右侧字段列表中需要用到的字段拖入值区域。

你发会发现,插入R脚本对象后,执行的所有鼠标操作在R脚本编辑器中都被记录为R代码(很类似Excel中的录制宏啊有木有~)。

现在你可以在R脚本编辑器中自由的编写并执行代码了。(代码与R中的一样,写完一句代码,选中点击编辑器的运营按钮)

library(ggplot2)

library(RColorBrewer)

library(ggthemes)

ggplot(mtcars,aes(qsec,disp,colour=factor(cyl)))+geom_point()+theme_economist()+scale_colour_economist()+guides(colour=guide_legend(title=NULL))

ggplot(mtcars,aes(qsec,disp,size=mpg,colour=factor(cyl)))+geom_point()+scale_size_area()+theme_economist()+scale_colour_economist()+guides(colour=guide_legend(title=NULL))

接下来我使用diamonds数据集(来自ggplot2包)

library(ggplot2)

library(ggthemes)

ggplot(diamonds,aes(depth,fill=color))+geom_histogram()+theme_economist()+scale_fill_economist()+guides(fill=guide_legend(title=NULL))+scale_x_discrete(limits=c(50,70))

虽然以上图表都很完美的输出了结果,但是过程还是很艰辛的,PowerBI无法像在R里面调用数据集那么方便,每次想换一个数据,都要重新建立一个RScript对象。

下面跟大家介绍关于PowerBI的的第二列R视觉对象,也是个人比较推荐的一类。

因为这些视觉对象是经过开发者努力改造过了,基本上不需要你写代码就可以输出的精美图表(因为是后台调用的R程序,所以依然需要你事前安装R软件)。

这一类图表对象你可以在PowerBI的线上开发者社区下载到图表插件和案例demo。

每一个R图表对象都提供插件下载和Sample独享可供参考。

下载完事儿之后,在可视化菜单中导入视觉对象。

插入刚才导入的相关性可视化图表对象,并将要呈现的相关性的字段拖入Values字段框中。

之后你会发现图表对象会自动相关热力矩阵图。(颜色深浅代表相关性大小,正为蓝,负为红)

该图表对象调用的是R中的corrplot函数。我们在RStudio中使用该函数生成相似的案例图。

  • library(corrplot)
  • data(mtcars)
  • corr <- cor(mtcars[,c(1,3,4,5,6,7)])
  • corrplot(corr)

看吧是不是很像呢~

和相关性矩阵图一样的R图表视觉对象在社区中一共有6个(包含Correlation plot)。

以上六个图形视觉对象都是包含着统计算法和统计模型的视觉可视化对象,经过设计师的精心设计,复杂的统计算法模型呈现出精美的视觉图表图表对象,决策者可以在不用深入了解模型和算法原理的基础上,很直观的领会模型所表达的决策信息。这就是数据可视化的魅力所在。(当然如果能具备这些模型的理论基础的话,用起来就更加的得心应手啦)

小魔方已经将微软第三方应用平台的所有视觉对象插件打包整理(包含R对象的几款插件),共享在魔方学院的QQ群文件里啦,想要体验的小伙伴儿赶快去下载吧~

原文发布于微信公众号 - 数据小魔方(datamofang)

原文发表时间:2016-11-29

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

发表于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏LET

CPU简介

3129
来自专栏Python中文社区

Python=R+SQL/Hive?在数据分析与挖掘方面该选哪一个?

什么是R语言? R语言,一种自由软件编程语言与操作环境,主要用于统计分析、绘图、数据挖掘。R本来是由来自新西兰奥克兰大学的罗斯·伊哈卡和罗伯特·杰特曼开发(也因...

22410
来自专栏CDA数据分析师

强大的图形功能软件:S-Plus

【摘要】S语言是由AT&T 贝尔实验室开发的一种用来进行数据探索、统计分析、作图的解释型语言。它的丰富的数据类型(向量、数组、列表、对象等)特别有利于实现新的统...

21010
来自专栏跨界架构师

又出现异常数据?来剖析一下分布式系统中的「事务」

本文是本系列的第三篇。与前两篇《不知道是不是最通俗易懂的《数据一致性》剖析了》、《烦人的数据不一致到底怎么解决?——通过“共识”达成数据一致性》...

1302
来自专栏杨建荣的学习笔记

运维平台元数据稽核小结

数据库运维中的元数据建设都是重中之重,如果元数据不具有参考的价值,那么后续的操作都会受到影响,但是元数据的建设也应该是分成几个步子来走,首先得能够收集到元数...

1434
来自专栏程序员的知识天地

Python爬虫入门,8个常用爬虫技巧盘点

编程对于任何一个新手来说都不是一件容易的事情,Python对于任何一个想学习的编程的人来说的确是一个福音,阅读Python代码像是在阅读文章,源于Python语...

1481
来自专栏腾讯Bugly的专栏

关于 Android N 那些你不知道的事儿

今年3月,Google 破天荒提前半年发布了 Android N 开发者预览版。当然,作为一个不合格的谷粉并没有第一时间体验安装,因为至今仍然能够回忆起来去年今...

3536
来自专栏牛客网

BAT面经

因为也许我当时因为要实现梦想只有一条途径,可如果你选择了一条路,这并不意味着你要放弃其他的方式。——《跳出我天地》

1683
来自专栏FreeBuf

一张GIF引发的微信崩溃

今早,朋友发了一个表情给我,看下面,就是这个。。 ? 这不是天线宝宝卖萌系列表情包么,正当我看着俩宝宝撞屁股的GIF图寻开心的时候,微信突然卡死闪退了。。然后我...

3289
来自专栏腾讯Bugly的专栏

iOS 9.1 深坑体验及其破解之道

众所周知,苹果iOS 9的推新速度已经打破了纪录,9.1刚刚于上周推出后,昨天,9.2 beta1已经出来了。 那么,到底iOS9都有哪些坑?网上能够搜索到的那...

2785

扫码关注云+社区

领取腾讯云代金券