Exporter un graphique vers un fichier .eps avec R

107

Comment exporter un graphique vers un fichier au format .eps? J'exporte généralement mes graphiques dans un fichier .pdf (en utilisant la fonction 'pdf'), et cela fonctionne assez bien. Cependant, maintenant je dois exporter vers des fichiers .eps.

la drogue
la source
Vous pouvez essayer de rechercher dans R en tapant ??eps. Vous obtiendrez la postscriptpage ou du moins ps.options(ce qui vous mènerait à postscript).
Roman Luštrik
Voir aussi pdf2ps pour convertir des fichiers pdf en ps. Utilisation du shell:, $ pdf2ps plot.pdfva créer plot.ps.
Paul Rougieux

Réponses:

128

Le moyen le plus simple que j'ai trouvé pour créer des postscripts est le suivant, en utilisant la setEPS()commande:

setEPS()
postscript("whatever.eps")
plot(rnorm(100), main="Hey Some Data")
dev.off()
CompEcon
la source
3
Il est surprenant de voir à quel point cela est utile et à quel point il est caché.
CompEcon
Oui, m'a sauvé beaucoup de captures d'écran :)
chepukha
Merci beaucoup, j'ai pu obtenir le graphique en * .eps.
lbenitesanchez
50

Si vous utilisez ggplot2pour générer une figure, alors a ggsave(file="name.eps")fonctionnera également.

Maiasaura
la source
Ah, c'est exactement ce dont j'avais besoin! Et vous pouvez modifier la taille comme ceci:ggsave("name.eps", width = 20, height = 20, units = "cm")
DirtStats
31

Le postscript()périphérique permet la création d'EPS, mais uniquement si vous modifiez certaines des valeurs par défaut. Lisez ?postscriptpour les détails.

Voici un exemple:

postscript("foo.eps", horizontal = FALSE, onefile = FALSE, paper = "special")
plot(1:10)
dev.off()
Gavin Simpson
la source
Merci. J'essaye de l'utiliser, mais il y a une erreur: les marges du graphe sont trop grandes ...
the_drug
6
agrandir les dimensions de la parcelle: postscript("foo.eps", horizontal = FALSE, onefile = FALSE, paper = "special", height = 10, width = 10)par exemple. Les unités sont en pouces. Le problème est que l'appareil sur lequel vous tracez n'est pas assez grand pour contenir les marges de la zone de tracé que vous utilisez.
Gavin Simpson
1
J'avais besoin du fichier * .eps exporté pour fonctionner dans Microsoft Powerpoint, ce qui n'était pas le cas au départ. Après quelques essais et erreurs, j'ai remarqué que je devais définir en plus le paramètre colormodel="rgb"de postscript ().
agoldev
14

Une autre façon consiste à utiliser des périphériques graphiques SVG, PDF et PostScript basés sur Cairographics. De cette façon, vous n'avez pas besoin desetEPS()

cairo_ps("image.eps")
plot(1, 10)
dev.off()
USER_1
la source
C'est une suggestion utile. cairo_psdiffère de postscripten ce qu'il prend en charge plus de glyphes Unicode, mais présente l'inconvénient que la semi-transparence est mal gérée et déclenchera souvent une sortie bitmap plutôt que vectorielle.
ms609
4

Oui, ouvrez un postscript()appareil avec un nom de fichier se terminant par .eps, faites vos tracés et appelez dev.off().

Dirk Eddelbuettel
la source