Как разместить несколько графиков на языке R в отдельных файлах jpeg?

#r #default #device #jpeg

#r #По умолчанию #устройство #jpeg

Вопрос:

Я хотел бы отобразить несколько графиков в отдельных файлах bitmap, используя шаблон имени файла (например, для JPEG) file.d.jpg в R. Я попытался использовать что-то вроде:

 somevar <- 1
jpg(paste(sep='',filename,'.d.jpg'))
while(somevar <= n)
{
  plot(data[somevar])
  dev.new()
  somevar <- somevar   1
}
dev.off()
  

но это создает один .jpg файл и несколько Rplotnnn.pdf файлов. Как я могу изменить устройство по умолчанию на jpg и использовать шаблон пользовательского имени файла?

Комментарии:

1. Я бы создал вектор имен my.names <- c("plot1.jpg", "plot2.jpg", "plot3.jpg") и сделал for (fn in my.names) ... jpeg(fn)... .

2. Есть причина, по которой вы используете JPEG, а не векторный формат? Я бы посоветовал вам вместо этого использовать формат PNG или PDF. Вызов идентичен, просто используйте png вместо jpg для настройки устройства.

3. Действительно. Я использую png now, кроме того, проблема была связана с несколько эзотерическим dev механизмом в R.

Ответ №1:

Я думаю, это должно сработать

 somevar <- 1
while(somevar <= n) {
  jpg(sprintf("%s.jpg", filename, somevar))
  plot(data[somevar])
  dev.off()
  somevar <- somevar   1
}
  

Построение графика происходит от открытия устройства (здесь jpeg(...) ) до dev.off() . Вы управляете именем файла (где я исправил ваше использование paste() to sprintf() ) и циклом.

Комментарии:

1. Почему выбор sprintf вместо вставки?

Ответ №2:

Что произойдет, если вы удалите dev.new() из своего кода? Функция / устройство jpg должно генерировать несколько файлов по вашему шаблону, пока вы продолжаете запись на устройство jpg (вызов device.new каждый раз запускает новое устройство, отсюда и файлы pdf).

Комментарии:

1. В этом случае был создан только один jpg файл.