gpt4 book ai didi

r - 是否可以在 Power BI 的 R Script Visual 中使用 R Plotly 库?

转载 作者:行者123 更新时间:2023-12-04 09:29:17 24 4
gpt4 key购买 nike

有没有人试过使用 PlotlyHighchart在 Power BI 的 R Script Visual 中,

当我在 R 脚本编辑器中尝试此操作并运行时:

library(ggplot2)
library(plotly)
x <- 1:5
y <- c(1, 3, 2, 3, 1)
plot_ly(x = dataset$period, y = dataset$mean, name = "spline", line = list(shape = "spline"))

错误信息:

No image was created. The R code did not result in creation of any visuals. Make sure your R script results in a plot to the R default device.



但在我的 R 桌面上运行完美。任何想法?

最佳答案

对于较新版本的 PowerBI,还可以生成 Plotly图表使用 Rggplot custom PowerBI visualizations .使用下面描述的方法,您可以从 PowerBI 表中生成密度图,如下所示:

enter image description here

资源:

我建议的解决方案使用 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

输出:

enter image description here

第 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');
####################################################

上面的代码片段使用了来自 Iris 的数据集数据集,但我们将通过添加以下行来利用 PowerBI 文件中可用的数据:
df <- data.frame(X = Values$Data)

该行从我们将命名为 Data 的现有列 i PowerBI 文件构建数据框。 .但首先,继续将上面的完整代码段更改为:
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

这将触发此输出:

enter image description here

当涉及到更高级的东西时,就是这样。剩下的就简单了!

第 3 部分 - 使用 R 在 PowerBI 中生成一些随机数据

3.1 Home标签,点击 Edit Queries打开 Power Query Editor .

3.2 点击 Enter Data , 和 只有点击 OK .

3.3 选择 Transform > Run R Script并插入以下代码段:
set.seed(123)
output <- data.frame(rnorm(100, mean=100, sd=10))

这将在 Query Settings 下产生一个新的步骤叫 "output" ,以及一个带有随机数的表,但不是世界上最好的列名。

3.4 更改 Applied Steps 下的步骤名称至 tblRandom , 和列的名称 SampleData所以你最终会得到这个:

enter image description here

3.5 选择 Home > Close&Apply返回 PowerBI Desktop。

**第 4 部分 - 导入和使用您的自定义可视化

4.1 Visualizations ,单击带有三个点的图标并选择 Import from file :

enter image description here

4.1 导航至 C:\pbiCustomR\pbiDensity\dist ,选择 pbiDensity.pbiviz , 点击 OK一个新图标应该出现在 Visualizations 下:

enter image description here

And this is important :为了使您的可视化工作,列的名称 以匹配 R 脚本中的引用。而在我们的案例中,他们没有(只是为了说明这一点)。所以更改名称列 SampleDataData .

4.2 单击您的新图标以插入可视化占位符,然后拖动您的 Data列到它:

enter image description here

然后你去:

enter image description here

现在您拥有 plotly 的全部灵活性工具栏供您使用:

enter image description here

第 5 部分 - 编辑 R 脚本、更新和重新导入自定义可视化

5.1 在 RStudio 中编辑您的脚本并在不更改文件名的情况下保存它

5.2 导航到您的自定义文件夹并运行 pbiviz package
5.3 删除 PowerBI 中现有的自定义视觉对象并再次导入

关于r - 是否可以在 Power BI 的 R Script Visual 中使用 R Plotly 库?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39368729/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com