0

我想制作一个 R bash 脚本,它在运行时制作一个 ggplot/plotly 绘图

我有以下脚本,它使用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 中进行绘图,这似乎很奇怪。我想这样做的原因是我最终想将命令行参数传递给这个脚本并弹出一个情节。

4

1 回答 1

0

这不是我想要的 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")
于 2019-10-29T19:41:58.197 回答