Exportieren Sie ein Diagramm in die .eps-Datei mit R.

106

Wie exportiere ich ein Diagramm in eine Datei im EPS-Format? Normalerweise exportiere ich meine Grafiken in eine PDF-Datei (mit der Funktion 'pdf') und es funktioniert ganz gut. Jetzt muss ich jedoch in .eps-Dateien exportieren.

das Medikament
quelle
Sie können versuchen, in R zu suchen, indem Sie eingeben ??eps. Sie würden entweder postscriptSeite oder zumindest bekommen ps.options(was Sie dazu führen würde postscript).
Roman Luštrik
Siehe auch pdf2ps zum Konvertieren von PDF-Dateien in ps. Shell-Verwendung : $ pdf2ps plot.pdf, wird erstellt plot.ps.
Paul Rougieux

Antworten:

127

Der einfachste Weg, Postskripte zu erstellen, ist der folgende mit dem setEPS()Befehl:

setEPS()
postscript("whatever.eps")
plot(rnorm(100), main="Hey Some Data")
dev.off()
CompEcon
quelle
3
Es ist überraschend, wie nützlich dies ist und wie versteckt eine Funktion ist.
CompEcon
Ja, hat mir eine Menge Screenshots
erspart
Vielen Dank, ich muss die Grafik in * .eps bekommen.
lbenitesanchez
50

Wenn Sie ggplot2eine Zahl generieren, ggsave(file="name.eps")funktioniert auch a.

Maiasaura
quelle
Ah, das ist genau das, was ich brauchte! Und Sie können Größe wie ggsave("name.eps", width = 20, height = 20, units = "cm")
folgt
31

Das postscript()Gerät ermöglicht die Erstellung von EPS, jedoch nur, wenn Sie einige der Standardwerte ändern. Lesen Sie ?postscriptfür die Details.

Hier ist ein Beispiel:

postscript("foo.eps", horizontal = FALSE, onefile = FALSE, paper = "special")
plot(1:10)
dev.off()
Gavin Simpson
quelle
Vielen Dank. Ich versuche es zu benutzen, aber es gibt einen Fehler:
Grafikränder
6
Vergrößern Sie die Plotabmessungen, postscript("foo.eps", horizontal = FALSE, onefile = FALSE, paper = "special", height = 10, width = 10)zum Beispiel. Die Einheiten sind in Zoll. Das Problem ist, dass das Gerät, auf dem Sie plotten, nicht groß genug ist, um die Ränder des verwendeten Plotbereichs aufzunehmen.
Gavin Simpson
1
Ich brauchte die exportierten * .eps, um in Microsoft Powerpoint zu arbeiten, was anfangs nicht der Fall war. Nach einigem Ausprobieren ist mir aufgefallen, dass ich zusätzlich den Parameter colormodel="rgb"von postscript () einstellen muss .
Agoldev
14

Eine andere Möglichkeit ist die Verwendung von Cairographics-basierten SVG-, PDF- und PostScript-Grafikgeräten. Auf diese Weise müssen Sie nichtsetEPS()

cairo_ps("image.eps")
plot(1, 10)
dev.off()
USER_1
quelle
Dies ist ein nützlicher Vorschlag. cairo_psunterscheidet sich davon postscriptdarin, dass es mehr Unicode-Glyphen unterstützt, hat jedoch den Nachteil, dass die Halbtransparenz schlecht gehandhabt wird und häufig eher eine Bitmap als eine Vektorausgabe auslöst.
ms609
4

Ja, öffnen Sie ein postscript()Gerät mit einem Dateinamen, der auf endet .eps, machen Sie Ihre Handlung (en) und rufen Sie an dev.off().

Dirk Eddelbuettel
quelle