2

R で plot.ly を使い始めたところ、htmlwidgets を使用してグラフを直接 html で公開できる可能性に驚いています。今まで、同じ html に複数のウィジェットを保存することができませんでした。複数のウィジェットをスタンドアロンの html に保存し、それを html コードで手動で結合しましたが、R で実行できるようにしたいと考えています。

簡単な例:

#graph
graph<- ggplot(df, aes(x = Data, y=tax))+ geom_bar(stat='identity')
gg <- ggplotly(graph)

# save as HtmlWigdet
htmlwidgets::saveWidget(as.widget(gg), "Index.html")

複数の ggplotly オブジェクトを解析して saveWidgets にするにはどうすればよいですか?

(これは、stackoverflow での最初の質問です。正しくできたことを願っています!よろしく!)

4

2 に答える 2

3

これは、htmltoolsタグ リストを保存してからタグを返すように、パッケージの一部を改造した関数iframeです。htmlwidgetsで複数をラップしhtmltools::tagList、この関数を使用して束全体を保存できます。

save_tags <- function (tags, file, selfcontained = F, libdir = "./lib") 
{
  if (is.null(libdir)) {
    libdir <- paste(tools::file_path_sans_ext(basename(file)), 
                    "_files", sep = "")
  }
  htmltools::save_html(tags, file = file, libdir = libdir)
  if (selfcontained) {
    if (!htmlwidgets:::pandoc_available()) {
      stop("Saving a widget with selfcontained = TRUE requires pandoc. For details see:\n", 
           "https://github.com/rstudio/rmarkdown/blob/master/PANDOC.md")
    }
    htmlwidgets:::pandoc_self_contained_html(file, file)
    unlink(libdir, recursive = TRUE)
  }
  return(htmltools::tags$iframe(src= file, height = "400px", width = "100%", style="border:0;"))
}
于 2016-11-21T03:13:19.000 に答える