如何从 shell 脚本在浏览器中打开 ggplot/plotly 绘图

How to have a ggplot/plotly plot open in a browser from a shell script

我想制作一个 R bash 脚本,在 运行s

时制作 ggplot/plotly 情节

我有以下脚本 运行s 在交互模式下使用 littler

#!/usr/bin/env r

library(plotly)
set.seed(955)
# Make some noisily increasing data
dat <- data.frame(cond = rep(c("A", "B"), each=10),
                  xvar = 1:20 + rnorm(20,sd=3),
                  yvar = 1:20 + rnorm(20,sd=3))

p <- ggplot(dat, aes(x=xvar, y=yvar)) +
    geom_point(shape=1)      # Use hollow circles

p <- ggplotly(p)

message("before plot")
p
message("after plot")

在我将文件设为可执行文件 (chmod +x) 和 运行 之后,我确实看到了 消息 before plotafter plot,但没有打开浏览器 剧情。

如何从我的脚本中打开情节?

上下文

我正在编写一个脚本来在 bash 中进行绘图,这似乎很奇怪。我想这样做的原因是我最终想将命令行参数传递给这个脚本并弹出一个情节。

这不是我想要的 100%,但它似乎工作正常。我正在使用最小的 cli 应用程序 sxiv(任何图像查看器都可以)在保存后打开图像。以下是完整的脚本。

#!/usr/bin/env r

library(ggplot2)

base_dir <- getwd()
full_dif <- paste0(base_dir,"/p.jpg")

set.seed(955)
# Make some noisily increasing data
dat <- data.frame(cond = rep(c("A", "B"), each=10),
                  xvar = 1:20 + rnorm(20,sd=3),
                  yvar = 1:20 + rnorm(20,sd=3))

p <- ggplot(dat, aes(x=xvar, y=yvar)) +
    geom_point(shape=1)      # Use hollow circles

ggsave(plot = p, filename = "p.jpg")

system_string <- paste0("/usr/bin/sxiv", " ", full_dif)

message("before plot")

system(system_string)

message("after plot")