Как открыть график ggplot/plotly в браузере из сценария оболочки
Я хотел бы сделать сценарий 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 plot
а также after plot
, но ни один браузер не открывает сюжет.
Как я могу открыть сюжет из моего сценария?
Контекст
Может показаться странным, что я делаю сценарий для построения графика в bash. Причина, по которой я хотел бы это сделать, заключается в том, что в конечном итоге я хотел бы передать аргументы командной строки этому сценарию и получить всплывающий сюжет.
1 ответ
Это не стопроцентное желание, к которому я стремился, но, похоже, все работает нормально. Я использую минимальное приложение 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")