当Power BI遇见R语言

浏览: 2998

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代码的形式获取数据:

(这里要注意,如果是R自带数据集,可直接以data(names)的形式调用,如果是其他需加载的包中的数据集,需要追加library(packagesname))


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群文件里啦,想要体验的小伙伴儿赶快去下载吧~



推荐 3
本文由 EasyCharts 创作,采用 知识共享署名-相同方式共享 3.0 中国大陆许可协议 进行许可。
转载、引用前需联系作者,并署名作者且注明文章出处。
本站文章版权归原作者及原出处所有 。内容为作者个人观点, 并不代表本站赞同其观点和对其真实性负责。本站是一个个人学习交流的平台,并不用于任何商业目的,如果有任何问题,请及时联系我们,我们将根据著作权人的要求,立即更正或者删除有关内容。本站拥有对此声明的最终解释权。

0 个评论

要回复文章请先登录注册