强制Rscript在浏览器查看器中打开

时间:2018-03-07 11:07:43

标签: r htmlwidgets

我在plot.R文件中有以下代码。

library(plotly)
options(browser = "/opt/google/chrome/chrome")
options(viewer = NULL)

plot_ly(economics, x = ~date, y = ~pce, z = ~pop) %>%
  htmlwidgets::onRender(
    "function(el, x) {
     var gd = document.getElementById(el.id); 
     Plotly.downloadImage(gd, {format: 'png', width: 600, height: 400, filename: 'plot'});
   }"
  )

从Rstudio或R控制台运行此代码按预期工作:svg图像保存在chrome中指定的下载目录中。但是来自RStudio的source('plot.R')或来自控制台的Rscript plot.R似乎都没有打开浏览器并保存按揭。没有错误。

我需要能够使用Rscript命令运行此脚本。

更新

感谢Krystian的回答,为Rstudio添加了print()。但是,我仍然无法使用浏览器查看器打开frym。

2 个答案:

答案 0 :(得分:1)

在创建的地图上强制print方法:

plot_ly(economics, x = ~date, y = ~pce, z = ~pop) %>%
  htmlwidgets::onRender(
    "function(el, x) {
     var gd = document.getElementById(el.id); 
     Plotly.downloadImage(gd, {format: 'png', width: 600, height: 400, filename: 'plot'});
   }"
  ) %>% print

答案 1 :(得分:0)

如果您有兴趣保存图片而不是看到浏览器打开,以下脚本可以帮助您:https://gist.github.com/anadiedrichs/68dbadd4135acc9a51ff8520a5cd987c

该示例使用 webshot 库来执行您需要的操作。

  1. 你必须安装plotly,webshot和htmltools软件包
  2. 运行:webshot::install_phantomjs()
  3. 根据您的需要使用/修改以下脚本。