ggsave в пакетном режиме для автоматического сохранения всех выполненных участков


Есть ли способ использовать ggsave в пакетном режиме? Когда я говорю пакетный режим, я имею в виду, что сначала я строю все свои участки через ggplot, а затем сохраняю каждый отдельный участок в определенной папке. Здесь предлагается аргумент под названием

plot=last_plot()

Но альтернативы нет. Есть ли для этого другой вариант, например plot=all_plot ()?

1 2

1 ответ:

Как и предлагал @baptiste, вы можете сохранить свои сюжеты в списке. Следующий код как строит графики (используя print, что необходимо, так как в противном случае назначение списку предотвращает отображение графика), так и сохраняет их в списке, а затем lapplys над списком, чтобы сохранить их все в виде файлов:

library(ggplot2)
plots <- list()
print(plots[[1]] <- ggplot() + geom_point(aes(x=runif(10), y=runif(10))))
print(plots[[2]] <- ggplot() + geom_point(aes(x=runif(10), y=runif(10))))
print(plots[[3]] <- ggplot() + geom_point(aes(x=runif(10), y=runif(10))))
invisible(
  lapply(
    seq_along(plots), 
    function(x) ggsave(filename=paste0("myplot", x, ".png"), plot=plots[[x]])
) )