R:将RGL小部件合并为单个HTML文件



在r中,使用 rgl htmlwidgets 库,我正在尝试提取具有小窗口的html文件使用切换按钮。

以下示例可以在RSTUDIO查看器中执行我想要的。HTML导出无需切换按钮,但是当RGLWidget包含这些按钮时失败。

第一部分基于这些RGL示例,而HTMLWidgets手册上的导出部分。

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 Line失败了

Error in system.file(config, package = package) : 
  'package' must be of length 1

确实,小部件对象是3个项目(3个小部件!)的列表。每个项目都可以单独保存,例如htmlwidgets::saveWidget(widgets[[1]], "y1.html")。这将产生3个单独的HTML文件。

如何将所有这些小部件组合在一起?根据此链接,其他链接也有类似的问题。

如果未实现此功能,是否有另一个软件包可以使用?

您的widgets对象是3个具有c("shiny.tag.list","list")类的小部件的列表,而不是小部件。您可以使用htmltools::save_html函数保存它。所以而不是

htmlwidgets::saveWidget(widgets, "y.html")

你想要

htmltools::save_html(widgets, "y.html")

相关内容

  • 没有找到相关文章

最新更新