2017-12-21 32 views
0

としてRGLウィジェットを組み合わせて保存し、RGLhtmlwidgetsライブラリを使用して、私はトグルボタンでウィジェットを持つHTMLファイルを抽出しようとしています。R:Rでは単一のHTMLファイル

次の例では、RStudioビューアで必要なものを行います。 HTMLエクスポートはトグルボタンなしで機能しますが、rglwidgetにこれらのボタンが含まれていると失敗します。

最初の部分はthese rgl examplesに基づいており、エクスポート部分はthe htmlwidgets manualに基づいています。 saveWidgetラインが

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

で失敗

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 ::、ウィジェットのオブジェクトは、3つの項目のリストである(3つのウィジェット!)。各項目は別々に保存することができます(例:htmlwidgets::saveWidget(widgets[[1]], "y1.html"))。これは、3つの別々のHTMLファイルを生成します。

どのようにこれらのウィジェットを組み合わせるか? this linkによれば、他は同様の問題を抱えている。

この機能が実装されていない場合、動作する別のパッケージがありますか?

答えて

1

あなたのwidgetsオブジェクトは、ウィジェットではなく、c("shiny.tag.list","list")クラスの3つのウィジェットのリストです。 htmltools::save_html機能を使用して保存することができます。だからではなく、

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

のあなたは

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

だから、シンプルたい!どうもありがとう。 –

関連する問題