教程:创建 R 驱动的 Power BI 视觉对象
- 版本 :2023.1(当前版本)
教程:创建 R 驱动的 Power BI 视觉对象
作为开发人员,你可以创建自己的 Power BI 视觉对象。 这些视觉对象可供你、你的组织或第三方使用。
本文将分步指导如何创建 R 驱动的 Power BI 视觉对象。
在本教程中,了解如何:
创建 R 驱动的视觉对象
在 Power BI Desktop 中编辑 R 脚本
向视觉对象的依赖项文件添加库
添加静态属性
先决条件
Power BI Pro 帐户。 开始之前,请注册免费试用版。
R 引擎。 可以从很多位置(包括 Revolution Open 下载页和 CRAN 存储库)免费下载 R 引擎。 有关详细信息,请参阅使用 R 创建 Power BI 视觉对象。
Power BI Desktop。
对于 Windows 用户,需要 Windows PowerShell 版本 4 或更高版本,而对于 OSX 用户,则需要终端。
入门
准备视觉对象的一些示例数据。 可以将这些值保存到 Excel 数据库或 .csv 文件中,然后将其导入到 Power BI Desktop 中。
MonthNo 总单位数 1 2303 2 2319 3 1732 4 1615 5 1427 6 2253 7 1147 8 1515 9 2516 10 3131 11 3170 12 2762 若要创建视觉对象,请打开 PowerShell 或终端,并运行以下命令 :
cmd
pbiviz new rVisualSample -t rvisual
此命令为 rVisualSample 视觉对象创建一个新文件夹。 结构基于
rvisual
模板。 它将在视觉对象的根文件夹中创建一个名为 script.r 的文件。 此文件将保管 R 脚本,该脚本运行后可在呈现视觉对象时生成图像。 可以在 Power BI Desktop 中创建 R 脚本。从新创建的
rVisualSample
目录运行cmd
pbiviz start
在 Power BI Desktop 中,选择“R 脚本视觉对象” :
通过将“月份”和“单位总数”拖动到视觉对象的“值”中,将数据分配到开发人员的视觉对象中 。
将“单位总数”的聚合类型设置为“不汇总”。
在 Power BI Desktop 中的 R 脚本编辑器中,键入以下内容:
R复制
plot(dataset)
此命令使用数据集中的值作为输入来创建散点图。
选择“运行脚本”图标以查看结果。
编辑 R 脚本
可以修改 R 脚本来创建其他类型的视觉对象。 接下来创建一个折线图。
将以下 R 代码粘贴到 R 脚本编辑器中:
R复制
x 1] # get the first column from datasety 2] # get the second column from datasetcolumnNames = colnames(dataset) # get column namesplot(x, y, type="n", xlab=columnNames[1], ylab=columnNames[2]) # draw empty plot with axis and labels onlylines(x, y, col="green") # draw line plot
选择“运行脚本”图标以查看结果。
R 脚本准备就绪后,将其复制到视觉对象项目的根目录中的
script.r
文件中。在 capabilities.json 文件中,将
dataRoles
:name
更改为 dataset,将dataViewMappings
输入设置为 dataset 。JSON复制
{ "dataRoles": [
{ "displayName": "Values", "kind": "GroupingOrMeasure", "name": "dataset"
}
], "dataViewMappings": [
{ "scriptResult": { "dataInput": { "table": { "rows": { "select": [
{ "for": { "in": "dataset"
}
}
], "dataReductionAlgorithm": { "top": {}
}
}
}
},
...
}
}
],
}添加以下代码,以支持从 src/visual. ts 文件中调整此映像大小。
TypeScript复制
public onResizing(finalViewport: IViewport): void { this.imageDiv.style.height = finalViewport.height + "px"; this.imageDiv.style.width = finalViewport.width + "px"; this.imageElement.style.height = finalViewport.height + "px"; this.imageElement.style.width = finalViewport.width + "px";
}
向视觉对象包添加库
corrplot
包创建相关矩阵的图形显示。 有关 corrplot
的详细信息,请参阅 corrplot 包简介。
将
corrplot
库依赖项添加到dependencies.json
文件。 下面是文件内容示例:JSON复制
{ "cranPackages": [
{ "name": "corrplot", "displayName": "corrplot", "url": "https://cran.r-project.org/web/packages/corrplot/"
}
]
}现在可以开始在
script.r
文件中使用 corrplot 包。R复制
library(corrplot)
corr "circle", order = "hclust")使用
corrplot
包的结果如下例所示:
将静态属性添加到“属性”窗格
现在已有一个基本的 corrplot
视觉对象,接下来将属性添加到“属性”窗格,让用户能够更改对视觉对象的观感。
我们将使用 method
参数来配置数据点的形状。 默认脚本使用圆圈。 修改视觉对象,允许用户在多个选项之间进行选择。
在 capabilities.json 文件中定义名为 settings 的
object
,并向其赋予以下属性 。 然后,在枚举方法中使用此对象名称,以从“属性”窗格中获取这些值。JSON复制
{ "settings": { "displayName": "Visual Settings", "description": "Settings to control the look and feel of the visual", "properties": { "method": { "displayName": "Data Look", "description": "Control the look and feel of the data points in the visual", "type": { "enumeration": [
{ "displayName": "Circle", "value": "circle"
},
{ "displayName": "Square", "value": "square"
},
{ "displayName": "Ellipse", "value": "ellipse"
},
{ "displayName": "Number", "value": "number"
},
{ "displayName": "Shade", "value": "shade"
},
{ "displayName": "Color", "value": "color"
},
{ "displayName": "Pie", "value": "pie"
}
]
}
}
}
}打开 src/settings.ts 文件。 使用公共属性
method
创建CorrPlotSettings
类。 类型为string
,默认值为circle
。 将settings
属性添加到VisualSettings
类,其默认值为:TypeScript复制
"use strict";import { dataViewObjectsParser } from "powerbi-visuals-utils-dataviewutils";import DataViewObjectsParser = dataViewObjectsParser.DataViewObjectsParser;export class VisualSettings extends DataViewObjectsParser { public rcv_script: rcv_scriptSettings = new rcv_scriptSettings(); public settings: CorrPlotSettings = new CorrPlotSettings();
}export class CorrPlotSettings { public method: string = "circle";
}export class rcv_scriptSettings { public provider; public source;
}完成这些步骤后,可以更改视觉对象的属性。
最后,R 脚本必须具有默认属性。 如果用户不更改属性值(在本例中为形状设置),视觉对象将使用此值。
对于属性的 R 运行时变量,命名约定为
,在本例中为
settings_method
。运行以下 R 脚本:
R复制
library(corrplot)
corr if (!exists("settings_method"))
{
settings_method = "circle";
}
corrplot(corr, method=settings_method, order = "hclust")
打包并导入视觉对象
现在可以打包视觉对象,将其导入到任何 Power BI 报表。
填写
pbivis.json
文件中的displayName
、supportUrl
、description
、作者的name
和email
以及任何其他重要信息。如果要更改可视化效果窗格上的视觉对象图标,请替换 assets 文件夹中的 icon.png 文件 。
从视觉对象的根目录,运行以下命令:
PowerShell复制
pbiviz package
有关打包视觉对象的详细信息,请参阅打包自定义视觉对象
将视觉对象的 pbiviz 文件导入任何 Power BI 报表。 有关如何执行此操作的说明,请参阅将视觉对象文件从本地计算机导入 Power BI。
最终的视觉对象如以下示例所示: