R数据可视化 | PowerBI星球
自从有了R,限制你的只是你的想象力!
在PowerBI默认的可视化对象中,还有个R视觉对象,点击并不能像其他可视化一样直接使用,不过你若就此放过,可能就与一个强大的工具插肩而过。
下面带你一步步走进R的世界。
R是什么
R语言是目前非常流行、免费且开源的统计分析软件,是统计学家、数据科学家和业务分析师使用最广泛的一种编程语言,并且由一个充满活力和才华的贡献者社区支持,源源不断的提供各种程序包。
R在数据分析、统计建模、数据可视化等方面功能都十分强大,PowerBI中使用的只是它的数据可视化功能,已经足以让我们应接不暇、眼花缭乱。
安装R
Power BI Desktop 并没有安装 R 引擎。 若要在 Power BI Desktop 中运行 R 脚本,必须在本地计算机上单独安装 R。 可以从很多位置免费下载并安装 R,微软官网推荐的下载链接如下,
https://mran.revolutionanalytics.com/download
根据不同的操作系统选择不同的下载链接,windows系统直接下载第一个即可。
安装后打开PowerBI Desktop,在【文件】>【选项】中做如下设置,
其中R脚本里主目录,设置为你电脑中的R安装路径。
运行R
第一次使用的R的时候会出现这个提示,点击启用即可,
然后出现的界面如下,
R 视觉对象图像位于报表画布上
R 脚本编辑器位于中央窗格底部边缘处
R 脚本编辑器标题栏右边第一个三角形就是R脚本运行按钮。
根据它的提示,把任意的字段拖到可视化窗格的【值】中就可以开始编写脚本。
也可以先用其他可视化对象制作图表,再转化为R可视化,比如先用[city]和[GDP]两个字段生成柱形图,选中该图表,然后点击R,脚本中出现的代码如下:
这里我使用蓝色文字做了简单注释。
然后把以下代码复制到空白编辑器中,
library(ggplot2)
ggplot(dataset,aes(city,GDP))+geom_bar(stat="identity",fill="steelblue")
点击运行,就出现使用R做出的图表,以上步骤的gif图如下,
上面的第一行代码library(ggplot2),是加载ggplot2程序包,这是R可视化最重要的一个包,它可以通过底层组建构造各种匪夷所思的图形,可以说学好这一个包就足够了。
第二行是利用定义好的数据集dataset,设置纵横轴,图表类型为柱形,颜色为蓝色;这里有个印象就好,如果有时间,看一下R语言的入门文章就可以看懂以上的代码,并不会很难。
加载R包
如果 R 脚本发生错误,则不会绘制 R 视觉对象,并且将显示一条错误消息。 如下图所示,
点击查看该错误的详细信息,很多时候是缺少R程序包,R包安装方法有两种(比如需要安装程序包ggplot2),打开安装的R程序,
R编辑框中输入:install.packages("ggplot2")
选项卡【程序包】下,“安装程序包”,找到ggplot2,点击确定
然后就自动下载安装了。
体验R的强大可视化
R包中本身也自带有数据集,比如ggplot2自带有数据集diamonds,不需要使用任何PowerBI中的数据,直接把R语句输入到脚本,
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))
运行脚本,一个很个性的图表就出来了,
如果没有数据集,也可以在R中先构建一个数据集,把以下代码拷入编辑器,
library(ggpubr)
df <- data.frame( sex=factor(rep(c("f", "M"), each=200)), weight=c(rnorm(200, 55), rnorm(200, 58))) #构建数据集df
ggdensity(df, x="weight", add = "mean", rug = TRUE, color = "sex", fill = "sex", palette = c("#00AFBB", "#E7B800"))
运行脚本后,绘制出了一个分布图,
利用R不仅能生成一个单一的图表,甚至可以直接生成一个图表集合的仪表板,比如把以下语句复制到脚本:
library(UpSetR)
movies <- read.csv(system.file("extdata", "movies.csv", package = "UpSetR"), header = TRUE, sep = ";")
upset(movies, main.bar.color = "black", queries = list(list(query = intersects,
params = list("Drama"), color = "red", active = F), list(query = intersects,
params = list("Action", "Drama"), active = T), list(query = intersects,
params = list("Drama", "Comedy", "Action"), color = "orange", active = T)),
attribute.plots = list(gridrows = 45, plots = list(list(plot = scatter_plot,
x = "ReleaseDate", y = "AvgRating", queries = T), list(plot = scatter_plot,
x = "AvgRating", y = "Watches", queries = F)), ncols = 2), query.legend = "bottom")
运行R脚本,结果如下:
是不是很神奇,这就是R的强大之处,自从嵌入R之后,PowerBI可视化的想象力大大扩展。PowerBI中内置的、以及自定义的各种可视化都可以用R绘制出来,PowerBI中没有的各类图表,借助R也可以完成。
如果你不满足于PowerBI可视化的单调设置,想要更个性化的图表,想在数据可视化的道路上走的更远,那么R正适合你;当然学习R并不会太轻松,是需要耗费一定的时间和精力的,但正因为这样,精通以后才更有喜悦感,不是吗?