对于较新版本的 PowerBI,还可以使用R 和ggplot 作为custom PowerBI visualizations 生成Plotly 图表。使用下面描述的方法,您可以从 PowerBI 表中生成密度图,如下所示:
资源:
我建议的解决方案使用 nodejs,可以在 here 找到。这一点,以及我建议的主要部分都建立在 this excellent blogpost 的基础上,在涉及使用和更新 custom PowerBI Visualizations 的细节方面只有一些缺点。我可以只是参考那个链接并指出我做的不同的事情,但为了清楚和完整起见,我从头开始做了整个事情。
第 1 部分 - 下载并安装 node.js
1.1:链接:https://nodejs.org/en/
1.2:重新启动计算机,启动命令提示符,然后运行:
npm install -g powerbi-visuals-tools
1.3:通过在命令提示符下运行以下命令检查安装是否成功:
输入:
pbiviz
输出:
第 2 部分:制作 PowerBI 自定义视觉对象
2.1:创建一个文件夹来包含您的自定义可视化。
我正在使用命令提示符来执行此操作
# from the C:\ directory:
md pbiCustomR
cd pbiCustomR
在该文件夹中,运行以下命令:
pbiviz new pbiDensity -t html
这将创建一个新的视觉对象并安装一些所需的包。您可以将pbiDensity 更改为您想要的任何内容。
2.2:导航到文件夹C:\pbiCustomR\pbiDensity,仔细查看内容。
那里有很多东西,但我们只关注文件script.R 以及文件pbiDensity.pbiviz(位于子文件夹dist 中)。 script.R 是设置 R 脚本的模板。我们稍后将对其进行编辑。 pbiDensity.pbiviz 是一个 PowerBI 自定义可视化,您稍后也将在 Power BI 中导入。
2.3:打开文件C:pbiqp\script.R看到这个(我强烈推荐RStudio):
source('./r_files/flatten_HTML.r')
############### Library Declarations ###############
libraryRequireInstall("ggplot2");
libraryRequireInstall("plotly")
####################################################
################### Actual code ####################
g = qplot(`Petal.Length`, data = iris,fill = `Species`, main = Sys.time());
####################################################
############# Create and save widget ###############
p = ggplotly(g);
internalSaveWidget(p, 'out.html');
####################################################
上面的 sn-p 使用来自 Iris 数据集的数据集,但我们将通过添加以下行来利用 PowerBI 文件中可用的数据:
df <- data.frame(X = Values$Data)
该行从现有列 i PowerBI 文件构建数据框,我们将其命名为 Data。但首先,将上面的完整 sn-p 更改为:
source('./r_files/flatten_HTML.r')
############### Library Declarations ###############
libraryRequireInstall("ggplot2");
libraryRequireInstall("plotly")
####################################################
################### Actual code ####################
df <- data.frame(X = Values$Data)
# Build basic ggplot
g <- ggplot(df, aes(x = X))
# Add density plot
g = g + geom_density(colour = 'blue')
############# Create and save widget ###############
p = ggplotly(g);
internalSaveWidget(p, 'out.html');
####################################################
2.4:完成您的自定义可视化。
在文件夹C:\pbiCustomR\pbiDensity 中,使用命令提示符运行以下命令:
pbiviz package
这将触发此输出:
当涉及到更高级的东西时,就是这样。剩下的很简单!
第 3 部分 - 在 PowerBI 中使用 R 制作一些随机数据
3.1 在Home 标签下,点击Edit Queries 打开Power Query Editor。
3.2点击Enter Data,只点击OK。
3.3 选择Transform > Run R Script 并插入以下sn-p:
set.seed(123)
output <- data.frame(rnorm(100, mean=100, sd=10))
这将在Query Settings 下生成一个名为"output" 的新步骤,以及一个包含随机数且列名不是世界上最好的表。
3.4 将Applied Steps 下的步骤名称更改为tblRandom,将列名称更改为SampleData,这样您将得到以下结果:
3.5 选择 Home > Close&Apply 返回 PowerBI Desktop。
**第 4 部分 - 导入并使用您的自定义可视化
4.1在Visualizations下,点击三点图标,选择Import from file:
4.1 导航到C:\pbiCustomR\pbiDensity\dist,选择pbiDensity.pbiviz,点击OK,Visualizations下应该会出现一个新图标:
And this is important: 为了让您的可视化效果发挥作用,您的列名称必须与您的 R 脚本中的引用相匹配.在我们的例子中,他们没有(只是为了说明这一点)。所以将名称列SampleData改为Data。
4.2单击新图标以插入可视化占位符,并将Data 列拖到其中:
你去吧:
现在您可以随意使用plotly 工具栏的全部灵活性:
第 5 部分 - 编辑 R 脚本、更新和重新导入自定义可视化
5.1 在 RStudio 中编辑您的脚本并在不更改文件名的情况下保存它
5.2 导航到您的自定义文件夹并运行pbiviz package
5.3 在 PowerBI 中删除现有的自定义视觉对象并重新导入