r-使用htmlwidget保存交互式图将其绘制到路径



我正在尝试将一些交互式图形保存到额外的文件中。htmlwidget::saveWidget可以正常工作。但是我通过将它们保存到其他文件夹中,例如将它们保存到结果文件夹中来遇到问题。

results_dir <- 'results'
if(!dir.exists(results_dir)) dir.create(results_dir)
p <- plotly::plot_ly(economics, x = ~date, y = ~pop, 
             type = 'scatter', mode = 'markers')
htmlwidgets::saveWidget(p, 
                        file.path(results_dir, 'VSGs.html'))

错误消息是:

unaryizepath中的错误(basepath,"/",true(:
路径[1] ="结果":没有这样的文件或目录

有人有想法发生了什么事吗?

我知道之后只是移动文件,但是我希望解决此错误消息。

htmlwidgets::saveWidget(p, 'VSGs.html')
file.rename('VSGs.html', file.path(results_dir, 'VSGs.html'))

"结果"似乎不是有效的路径
尝试设置到存在的文件夹的完整路径。
这应该有效:

dir.create(paste0(getwd(),"/results"))
results_dir = paste0(getwd(),"/results") # get directory

然后使用result_dir作为节省的路径。

与r htmlwidget中的savewidget中的解决方法讨论了基本问题,无法将html文件保存在另一个文件夹中

tl/dr:使用以下

saveWidgetFix <- function (widget,file,...) {
  ## A wrapper to saveWidget which compensates for arguable BUG in
  ## saveWidget which requires `file` to be in current working
  ## directory.
  wd<-getwd()
  on.exit(setwd(wd))
  outDir<-dirname(file)
  file<-basename(file)
  setwd(outDir);
  saveWidget(widget,file=file,...)
}

使用Homebrew中的GNU-SED渲染后,您也可以修改HTML ...请确保在替换中使用绝对路径。

sed -i 's/"old_library_directory/"common/filepath/new_library_directory/g' *.html

这是SED语法的链接 - &gt;https://ss64.com/osx/sed.html

相关内容

  • 没有找到相关文章

最新更新