R:将 rgl 小部件组合并保存为单个 html 文件
R : combine and save rgl widgets as a single html file
在 R 中,使用 rgl 和 htmlwidgets 库,我试图提取一个 HTML 文件具有小部件 和切换按钮 .
以下示例在 RStudio 查看器中执行我想要的操作。 HTML 导出在没有切换按钮的情况下工作,但当 rglwidget 包含这些按钮时失败。
第一部分基于these rgl examples, and the export part on the htmlwidgets manual。
library(rgl)
open3d()
x <- sin(1:100)
y <- cos(1:100)
z <- -100:100/100
# draw a barrel
sids1 <- spheres3d(x, y, z, col = rainbow(1000),radius=0.05)
# draw a pole
sids2 <- spheres3d(0, 0, z, col = rainbow(1000),radius=0.05)
# create widgets with toggle buttons
widgets <- rglwidget() %>%
toggleWidget(ids = sids1, label = "Toggle Barrel") %>%
toggleWidget(ids = sids2, label = "Toggle Pole")
# Works well in RStudio Viewer
if (interactive()) widgets
# HTML export works without the toggle buttons
htmlwidgets::saveWidget(rglwidget(), "x.html")
# HTML export fails with the toggle buttons
htmlwidgets::saveWidget(widgets, "y.html")
第二个 htmlwidgets::saveWidget 行失败并显示
Error in system.file(config, package = package) :
'package' must be of length 1
实际上,widgets 对象是一个包含 3 个项目(3 个 widgets!)的列表。每个项目都可以单独保存,例如 htmlwidgets::saveWidget(widgets[[1]], "y1.html")
。这将产生 3 个单独的 html 文件。
如何将所有这些小部件组合在一起?根据this link,其他人也有类似的问题。
如果此功能未实现,是否有其他可用的软件包?
您的 widgets
对象是包含 class c("shiny.tag.list","list")
的 3 个小部件的列表,而不是小部件。您可以使用 htmltools::save_html
函数保存它。所以而不是
htmlwidgets::saveWidget(widgets, "y.html")
你想要
htmltools::save_html(widgets, "y.html")
在 R 中,使用 rgl 和 htmlwidgets 库,我试图提取一个 HTML 文件具有小部件 和切换按钮 .
以下示例在 RStudio 查看器中执行我想要的操作。 HTML 导出在没有切换按钮的情况下工作,但当 rglwidget 包含这些按钮时失败。
第一部分基于these rgl examples, and the export part on the htmlwidgets manual。
library(rgl)
open3d()
x <- sin(1:100)
y <- cos(1:100)
z <- -100:100/100
# draw a barrel
sids1 <- spheres3d(x, y, z, col = rainbow(1000),radius=0.05)
# draw a pole
sids2 <- spheres3d(0, 0, z, col = rainbow(1000),radius=0.05)
# create widgets with toggle buttons
widgets <- rglwidget() %>%
toggleWidget(ids = sids1, label = "Toggle Barrel") %>%
toggleWidget(ids = sids2, label = "Toggle Pole")
# Works well in RStudio Viewer
if (interactive()) widgets
# HTML export works without the toggle buttons
htmlwidgets::saveWidget(rglwidget(), "x.html")
# HTML export fails with the toggle buttons
htmlwidgets::saveWidget(widgets, "y.html")
第二个 htmlwidgets::saveWidget 行失败并显示
Error in system.file(config, package = package) :
'package' must be of length 1
实际上,widgets 对象是一个包含 3 个项目(3 个 widgets!)的列表。每个项目都可以单独保存,例如 htmlwidgets::saveWidget(widgets[[1]], "y1.html")
。这将产生 3 个单独的 html 文件。
如何将所有这些小部件组合在一起?根据this link,其他人也有类似的问题。
如果此功能未实现,是否有其他可用的软件包?
您的 widgets
对象是包含 class c("shiny.tag.list","list")
的 3 个小部件的列表,而不是小部件。您可以使用 htmltools::save_html
函数保存它。所以而不是
htmlwidgets::saveWidget(widgets, "y.html")
你想要
htmltools::save_html(widgets, "y.html")