2016-06-30 135 views
1

我需要在R中使用javascript-visualization包,如plotly和dygraphs,並在我的網頁中顯示生成的圖。每當用戶與網頁中的其他HTML元素進行交互時,都需要更新生成的圖。將動態變化的R htmlwidget嵌入到網頁中

我已經考慮過並且對Shiny服務器的UI整合方式感到失望,因爲它限制了開發者使用javascript來完全控制UI的方式,否則它很棒。

到現在爲止,我發現我可以將htmlwidgets文件嵌入到IFrame中以顯示劇情,但正如本文中討論的那樣:Embedding an R htmlwidgets into existing webpage,並且一般而言,Iframes被認爲是不好的練習,因此想要這樣做:Answer to the above-linked question

但問題是,每次我使用plotly或dygraph重新生成一個圖並使用htmlwidgets包的saveWidget()函數保存它們時,生成的圖文件對生成的圖的div具有不同的id。如何在每次生成劇情文件時將div存在於外部HTML文件中(使用srcs指定更多的html/css/js文件)?

+1

您是否需要實際保存小部件,或者您是否可以讓該小部件實時呈現?我知道你沒有提到iframe,但是,如果你最終要走iframe路線,你可以在iframe URL中傳遞參數並根據用戶與頁面上HTML元素的交互方式生成可視化文件。查看閃亮的會話對象:http://shiny.rstudio.com/reference/shiny/latest/session.html –

回答

0

我會建議我框架傳遞形式和使用閃亮。這不會導致重新使用現成的服務器的輪子努力。