web-dev-qa-db-fra.com

Comment enregistrer des images de tracé dans R?

J'ai créé un tracé à partir d'un très grand vecteur (magnitude de 10 ^ 7). Le problème avec la manière habituelle d'enregistrer le tracé en tant que fichier pdf est que le fichier pdf se présente comme un très gros fichier d'environ 10 Mo. Je ne veux pas d'une taille aussi grande pour un simple tracé de séries chronologiques. Comment enregistrer l'intrigue de telle sorte que la taille soit suffisamment petite pour être au maximum de 100 kilo-octets?

15
user22119

baptiste est sur la bonne voie avec leur suggestion de png pour une intrigue de type Nice raster. Contrairement à la suggestion de Jdbaba de copier le périphérique ouvert, je suggère que vous appeliez directement le périphérique png(). Cela vous fera gagner beaucoup de temps, car vous n'aurez pas à charger le tracé dans une fenêtre d'appareil séparée au préalable, ce qui peut prendre beaucoup de temps si l'ensemble de données est volumineux.

Exemple

#plotting of 1e+06 points
x <- rnorm(1000000)
y <- rnorm(1000000)
png("myplot.png", width=4, height=4, units="in", res=300)
par(mar=c(4,4,1,1))
plot(x,y,col=rgb(0,0,0,0.03), pch=".", cex=2)
dev.off() #only 129kb in size

enter image description here

voir ?png pour les autres paramètres du périphérique png.

19
Marc in the box

Si vous souhaitez tracer le fichier png, utilisez la commande suivante:

dev.copy(png,"myfile.png",width=8,height=6,units="in",res=100)
dev.off()

vous pouvez remplacer la valeur de res par une valeur plus élevée si vous souhaitez générer des graphiques de haute qualité.

Si vous souhaitez enregistrer le fichier au format PDF, utilisez la commande suivante:

pdf("myfile.pdf",width=8,height=6)
dev.off()

N'oubliez pas de modifier les valeurs de largeur et de hauteur selon vos besoins.

5
Janesh Devkota