查看原文
其他

当PowerBI遇到R语言

2017-09-02 杜雨 R语言中文社区

 作者:杜雨,EasyCharts团队成员,R语言中文社区专栏作者,兴趣方向为:Excel商务图表,R语言数据可视化,地理信息数据可视化。
个人公众号:数据小魔方(微信ID:datamofang) ,“数据小魔方”创始人。 

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)。



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



快报:杜雨2017年09月12在Hellobi Live直播【R语言可视化在商务场景中的应用】

内容:1、为什么选择R;2、ggplot2可视化理念;3、配色方案与规则;4、案例分享;5、高级数据地图专题应用;6、图形输出。

点击阅读原文立即学习+扫码咨询

您可能也对以下帖子感兴趣

文章有问题?点此查看未经处理的缓存