【问题标题】:Is it possible to use R Plotly library in R Script Visual of Power BI?是否可以在 Power BI 的 R Script Visual 中使用 R Plotly 库?
【发布时间】:2017-01-15 01:48:46
【问题描述】:

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

当我在 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"))

错误信息:

没有创建图像。 R 代码没有产生任何视觉效果。确保您的 R 脚本生成到 R 默认设备的绘图。

但可以在我的 R 桌面上完美运行。有什么想法吗?

【问题讨论】:

  • 自 2017 年 3 月 6 日起,plot_ly 在 Power BI 中受支持:Power BI Announcement。在发布 Power BI Fourm 之后让 plot_ly 运行存在问题。
  • @Dave D. 我的建议解决了你的问题吗?

标签: r highcharts plotly powerbi


【解决方案1】:

对于较新版本的 PowerBI,还可以使用Rggplot 作为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.1Home 标签下,点击Edit Queries 打开Power Query Editor

3.2点击Enter Data点击OK

3.3 选择Transform &gt; Run R Script 并插入以下sn-p:

set.seed(123)
output <- data.frame(rnorm(100, mean=100, sd=10))

这将在Query Settings 下生成一个名为"output" 的新步骤,以及一个包含随机数且列名不是世界上最好的表。

3.4Applied Steps 下的步骤名称更改为tblRandom,将列名称更改为SampleData,这样您将得到以下结果:

3.5 选择 Home &gt; Close&amp;Apply 返回 PowerBI Desktop。


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


4.1Visualizations下,点击三点图标,选择Import from file

4.1 导航到C:\pbiCustomR\pbiDensity\dist,选择pbiDensity.pbiviz,点击OKVisualizations下应该会出现一个新图标:

And this is important: 为了让您的可视化效果发挥作用,您的列名称必须与您的 R 脚本中的引用相匹配.在我们的例子中,他们没有(只是为了说明这一点)。所以将名称列SampleData改为Data

4.2单击新图标以插入可视化占位符,并将Data 列拖到其中:

你去吧:

现在您可以随意使用plotly 工具栏的全部灵活性:


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


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

5.2 导航到您的自定义文件夹并运行pbiviz package

5.3 在 PowerBI 中删除现有的自定义视觉对象并重新导入

【讨论】:

  • 我现在正在处理这个问题,但是当我在 cmd 提示符中写下这一行时:pbiviz new pbiDensity -t html 我收到此错误消息:信息创建新视觉错误无法创建视觉。错误:无效的模板有关解决此问题的任何帮助/建议都会很棒。
  • 只是一点,运行“pbiviz new ANYNAME -t html”会抛出一个错误:“错误无法创建视觉对象。错误:无效模板”,所以我必须将其更改为“pbiviz new ANYNAME -t rhtml”
  • @mohsenhs 这是一条有价值的信息!谢谢!
  • 感谢@vestland,希望能帮助其他人,因为答案对我有所帮助。这个问题的答案是一个很好的简短教程,值得保持更新:)
  • @mohsenhs 很高兴听到它对某些人仍然有价值!
【解决方案2】:

原因是目前 Power BI 只支持 R 可视化组件创建的渲染图表为 PNG。

尝试以下方法:

p <- plot_ly(x = dataset$period, y = dataset$mean, name = "spline", line = list(shape = "spline"))
plotly_IMAGE(p, format = "png", out_file = "out.png")

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2020-07-18
    • 2023-03-12
    • 1970-01-01
    • 2020-03-04
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多