【问题标题】:Power BI: include an htmlwidget other than a plotly graphicPower BI:包含除绘图图形之外的 htmlwidget
【发布时间】:2026-01-14 11:55:01
【问题描述】:
按照this amazing answer 和this tutorial,我已经能够在Power BI 中包含一个交互式ggplotly:
我想知道是否可以包含其他htmlwidgets。我尝试使用 DT 和 rAmCharts4 但我只得到一个空图,没有错误通知。您能否提供 Power BI 中包含的另一个 htmlwidget 的示例?
编辑
我终于用 DT 成功了。还有 highcharter。
【问题讨论】:
标签:
r
powerbi
htmlwidgets
【解决方案1】:
因为我知道管理,我回答我自己的问题。这是一个例子。首先,按照我的问题中给出的链接中的说明安装pbiviz。
-
创建一个工作目录:mkdir pbivizWorkplace 并进入:cd pbivizWorkplace
-
初始化一个新的视觉对象:pbiviz new Ggiraph -t rhtml
-
在创建的文件夹Ggiraph中,编辑pbiviz.json;你必须为description(你想要的)、supportUrl(例如https://www.example.com)和name和email写一些东西
-
编辑script.r,例如:
source('./r_files/flatten_HTML.r')
############### Library Declarations ###############
libraryRequireInstall("ggplot2");
libraryRequireInstall("ggiraph")
####################################################
################### Actual code ####################
data <- Values # we will use 'mtcars' as 'Values'
data$carname <- row.names(data)
gg_point <- ggplot(data = data) +
geom_point_interactive(aes(x = wt, y = qsec, color = disp,
tooltip = carname, data_id = carname)) +
theme_minimal()
####################################################
############# Create and save widget ###############
p <- girafe(ggobj = gg_point)
internalSaveWidget(p, 'out.html');
####################################################
################ Reduce paddings ###################
ReadFullFileReplaceString('out.html', 'out.html', ',"padding":[0-9]*,', ',"padding":0,')
####################################################
Power BI中导入的数据对应脚本中的Values。
由于我们要使用mtcars 作为数据,我们将其保存为 Excel 文件,但在此之前,我们添加一个包含行名的列,因为我们将使用行名作为工具提示:
mtcars$carname
-
转到文件夹 pbivizWorkplace/Ggiraph 并运行 pbiviz package
-
打开 Power BI,导入 mtcars.xlsx,选择并加载工作表
-
在'Visualizations'面板中,点击三个点,'import a visual from a file',然后选择pbiviz文件>pbivizWorkplace/Ggiraph/dist
-
“可视化”面板底部出现一个新图标(显示一些工具),点击它
-
在“字段”面板中,选择用于绘图的列,此处为 wt、qsec、disp 和 carname
-
您在 Power BI 中获得交互式图形: