#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
файл.