我在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 或来自控制台的Rscript plot.R
source('plot.R')
似乎都没有打开浏览器并保存图像。没有错误。
我需要能够使用Rscript
命令运行此脚本。
更新
感谢Krystian的回答,为Rstudio增加了print()
帮助。但是,我仍然无法打开浏览器查看器 frm RScript。
只需在创建的图上强制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
如果您有兴趣保存图像而不是查看浏览器打开,以下脚本可以帮助您: https://gist.github.com/anadiedrichs/68dbadd4135acc9a51ff8520a5cd987c
该示例使用 Webshot 库来执行所需的操作。
- 您必须安装plotly,webshot和htmltools软件包
- 运行:
webshot::install_phantomjs()
- 根据自己的需要使用/修改以下脚本。