Pour sortir un fichier postscript "f.ps" j'utilise habituellement la syntaxe suivante :
Code : Tout sélectionner
postscript("f.ps")
plot(1:10,(1:10)**2,type='l')
dev.off()
Pour sortir plusieurs fichiers on peut utiliser la boucle suivante :
Code : Tout sélectionner
for (i in 1:3){
filename <- paste("f",i,".ps",sep="")
postscript(filename)
plot(1:10,i*(1:10)**2,type='l',main=paste("Graphe",i))
dev.off()
}
On obtient bien les 3 fichiers f1.ps, f2.ps et f3.ps attendus.
Avec le package lattice la syntaxe devient, pour un seul fichier :
Code : Tout sélectionner
library(lattice)
trellis.device("postscript",file="g.ps")
xyplot((1:10)**2~(1:10),type='l')
dev.off()
Le fichier g.ps est correct.
Les problèmes commencent avec la boucle :
Code : Tout sélectionner
for (i in 1:3){
filename <- paste("g",i,".ps",sep="")
trellis.device("postscript",file=filename)
xyplot(i*(1:10)**2~(1:10),type='l',main=paste("Graphe",i))
dev.off()
}
On obtient 3 fichiers g1.ps, g2.ps et g3.ps qui sont bien de type postscript mais ne contiennent aucun graphe ! Où est l'erreur ?
PS. Si on remplace xyplot par une fonction non lattice (toujours avec trellis.device()) les 3 fichiers sont corrects. De plus si on met à la fois plot et xyplot seul les graphes réalisés avec plot sont sortis.