Esporta un grafico in un file .eps con R


107

Come si esporta un grafico in un file in formato .eps? In genere esporto i miei grafici in un file .pdf (utilizzando la funzione "pdf") e funziona abbastanza bene. Tuttavia, ora devo esportare in file .eps.


Puoi provare a cercare in R digitando ??eps. Otterresti la postscriptpagina o almeno ps.options(il che ti porterebbe a postscript).
Roman Luštrik

Vedi anche pdf2ps per convertire i file pdf in ps. Utilizzo della shell:, $ pdf2ps plot.pdfcreerà plot.ps.
Paul Rougieux

Risposte:


128

Il modo più semplice che ho trovato per creare postscript è il seguente, utilizzando il setEPS()comando:

setEPS()
postscript("whatever.eps")
plot(rnorm(100), main="Hey Some Data")
dev.off()

3
È sorprendente quanto sia utile e quanto sia nascosta una funzione.
CompEcon

Sì, mi ha salvato un sacco di screenshot :)
chepukha

Grazie mille, devo ottenere il grafico in * .eps.
lbenitesanchez

50

Se stai usando ggplot2per generare una figura, ggsave(file="name.eps")funzionerà anche a.


Ah, questo è proprio quello di cui avevo bisogno! E puoi modificare le dimensioni in questo modo:ggsave("name.eps", width = 20, height = 20, units = "cm")
DirtStats

31

Il postscript()dispositivo consente la creazione di EPS, ma solo se si modificano alcuni valori predefiniti. Leggi ?postscriptper i dettagli.

Ecco un esempio:

postscript("foo.eps", horizontal = FALSE, onefile = FALSE, paper = "special")
plot(1:10)
dev.off()

Grazie. Sto cercando di usarlo, ma c'è un errore: margini del grafico troppo grandi ...
the_drug

6
ingrandire le dimensioni della trama: postscript("foo.eps", horizontal = FALSE, onefile = FALSE, paper = "special", height = 10, width = 10)ad esempio. Le unità sono in pollici. Il problema è che il dispositivo su cui stai stampando non è abbastanza grande da contenere i margini della regione di stampa che stai utilizzando.
Gavin Simpson

1
Avevo bisogno che il file * .eps esportato funzionasse in Microsoft Powerpoint, cosa che inizialmente non era. Dopo alcuni tentativi ed errori ho notato che devo impostare anche il parametro colormodel="rgb"di postscript ().
agoldev

14

Un altro modo è utilizzare dispositivi grafici SVG, PDF e PostScript basati su Cairographics. In questo modo non è necessariosetEPS()

cairo_ps("image.eps")
plot(1, 10)
dev.off()

Questo è un suggerimento utile. cairo_psdifferisce dal fatto postscriptche supporta più glifi Unicode, ma ha lo svantaggio che la semitrasparenza è gestita male e spesso attiverà bitmap piuttosto che output vettoriale.
ms609

4

Sì, apri un postscript()dispositivo con un nome di file che termina con .eps, fai i tuoi complotti e chiama dev.off().

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.