2015-05-11 3 views
-1

Я хотел бы автоматически сохранять каждый сгенерированный график и связанный с ним код из сеанса R в определенном каталоге.Автоматическое сохранение графика и связанного с ним кода

Я заметил, что RStudio хранит все графики во временном файле (/tmp/Rtmp*/*.png в Linux). Поэтому моя .Last-функция копирует все эти файлы в каталог сохранения, когда я закрываю R. Тем не менее, я хотел бы также скопировать связанный код (т. Е. ~ 10 последних строк) с этими графиками в некоторые файлы * .Rhistory (используя savehistory функция). Каталог будет содержать что-то вроде:

  • plot1.png
  • .plot1.Rhistory
  • plot2.png
  • .plot2.Rhistory
  • ...

Первое что помогло бы мне понять, как работает функция построения Rstudio, но я не нашел источники. Я предполагаю, что он использует dev.copy(), поскольку вывод dev.list():

plot(0) 
dev.list() 
> RStudioGD  png 
     2   3 

У вас есть идеи?

Редактировать: Глядя на rstudio источников, я нашел в Tools.R файл функцию saveGraphicsSnapshot, но я до сих пор не понимаю, как это работает ...

+0

Зачем вам это нужно? Не могу придумать какой-либо прецедент. – zx8754

+0

Я использую множество графиков из большого количества баз данных, и часто забываю точный код, связанный с этими графиками :) Идея заключается в том, чтобы сохранить резервную копию моей работы в R в течение нескольких дней. – user3507085

ответ

0

Прежде всего, RStudio является фронт-енд для R , поэтому «понять, как работает функция графика RStudio» ... просто понять, как работает функция R plot. Чтобы найти документацию, вы можете найти ее в Google.

Теперь, к сути: Самый простой способ вывода результата plot() в файл должен использовать перечисленные функции here (Кстати, я рекомендую вам хорошо посмотреть на этот сайт ... это замечательно ресурс обучения для R). В своем коде, просто поместите соответствующую функцию:

# A simple example: 
x <- rnorm(1000) 
pdf('mytestplot.pdf') # This will redirect the output of the plot() function 
         # to a PDF file 
hist(x) 
dev.off() # This will "turn off" the output "redirecting"... after invoking 
      # this function, plots will be shown again in the plot viewer 

Другие функции:

  • png(): выход в PNG файл
  • jpeg(): выход в файл JPEG
  • и так далее

Надеюсь, что это поможет

+0

Спасибо за ваш ответ, но это не так. Решите мой pb: Я хочу графически строить графики в Rstudio, которые отображаются в RStudioGD и одновременно сохраняются в файле png (изображение + код). Надеюсь, это яснее. Кроме того, Rstudio имеет определенную конфигурацию .rs * (например, .rs.activateGraphicsDevice) – user3507085

Смежные вопросы