Я хотел бы сохранить несколько ggplots как jpegs через цикл for. Но когда я попытался адаптировать код, который я написал для основной команды plot, я не получаю никакого вывода (ничего не сохраняется в моем рабочем каталоге).Использование цикла for для сохранения нескольких ggplot как jpeg
Для примера, это прекрасно работает:
library(cowplot)
library(ggplot)
X<-c(1,2,3,4,5,6,7,8,9)
Y1<-c(2,3,4,4,3,2,4,5,6)
Y2<-c(3,4,5,3,2,1,1,2,3)
Y3<-c(4,5,6,7,8,9,8,7,6)
DF<-data.frame(X,Y1,Y2,Y3)
for(i in 1:3){
jpeg(paste(i,".jpeg",sep=""))
plot(DF[,1],DF[,i+1])
dev.off()
}
Я в конечном итоге получить три Jpeg файлы, сохраненные в моем рабочем каталоге.
Я не уверен, как правильно индексировать вызов ggplot здесь для меня, но даже это должно вернуть 3 экземпляров одного и того же участка:
for(i in 1:3){
jpeg(paste(i,".jpeg",sep=""))
ggplot(data=DF,aes(x=X,y=Y1))+geom_line()
dev.off()
}
В конце концов, я надеялся объединить несколько участков на одном формате JPEG, а затем сохранить несколько файлов JPEG, как это:
for(i in 1:3){
jpeg(paste(i,".jpeg",sep=""))
A<-ggplot(data=DF,aes(x=X,y=Y1))+geom_line()
B<-ggplot(data=DF,aes(x=X,y=Y2))+geom_line()
C<-ggplot(data=DF,aes(x=X,y=Y3))+geom_line()
plot_grid(A,B,C)
dev.off()
}
Так этот участок также должен вернуть 3 экземпляров одного и того же сюжета, все с разными индексированных имен файлов. Но опять же, я ничего не получаю.
Итак, мой вопрос в том, почему существует разница между общим графиком и ggploting в этом цикле. И как можно сохранить mutliple jpegs из ggplots, как указано выше?
Смотрите 'ggsave()'? –
Но я могу сэкономить один сюжет, как и выше вне цикла for. Так зачем мне ggsave внутри forloop, но не снаружи на одном звонке? – Vinterwoo
Думаю, вам нужен вызов 'print()' для вызовов 'ggplot' и' plot_grid' или уже упомянутый 'ggsave'. im не совсем уверен, но я предполагаю, что 'ggplot' создает объекты ggplot, которые, если вы хотите сохранить его в файле, должны быть явно' print'-ed ... – davidski