Я хотел бы сохранить несколько ggplots как jpeg через цикл for. Но когда я попытался адаптировать код, который я написал для базовой команды построения графика, я не получил вывода (в моем рабочем каталоге ничего не сохраняется).
Например, это отлично работает:
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 для i, но даже это должно вернуть 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 экземпляра одного и того же графика, все с разными индексированными именами файлов. Но опять же, я ничего не получаю.
Итак, мой вопрос: почему в этом цикле for есть разница между общим построением графика и ggploting. И как можно сохранить несколько jpeg-файлов из ggplots, как указано выше?
ggsave()
? - person Aurèle   schedule 15.01.2017print()
вызов для вызововggplot
иplot_grid
или уже упомянутогоggsave
. я не совсем уверен, но я предполагаю, чтоggplot
создает объекты ggplot, которые, если вы хотите сохранить их в файл, должны быть явноprint
-ed ... - person davidski   schedule 15.01.2017