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.


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()

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.


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()

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()

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().

Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.