Exportar un gráfico a un archivo .eps con R

107

¿Cómo exporto un gráfico a un archivo de formato .eps? Normalmente exporto mis gráficos a un archivo .pdf (usando la función 'pdf') y funciona bastante bien. Sin embargo, ahora tengo que exportar a archivos .eps.

la droga
fuente
Puede intentar buscar en R escribiendo ??eps. Obtendría una postscriptpágina o al menos ps.options(lo que lo llevaría a postscript).
Roman Luštrik
Consulte también pdf2ps para convertir archivos pdf a ps. Uso de Shell: $ pdf2ps plot.pdfcreará plot.ps.
Paul Rougieux

Respuestas:

128

La forma más fácil que he encontrado para crear postscripts es la siguiente, usando el setEPS()comando:

setEPS()
postscript("whatever.eps")
plot(rnorm(100), main="Hey Some Data")
dev.off()
CompEcon
fuente
3
Es sorprendente lo útil que es esto y lo oculta que es una característica.
CompEcon
Sí, me
guardé
Muchas gracias, tengo que conseguir el gráfico en * .eps.
lbenitesanchez
50

Si está utilizando ggplot2para generar una figura, ggsave(file="name.eps")también funcionará.

Maiasaura
fuente
¡Ah, esto es justo lo que necesitaba! Y puede modificar el tamaño de esta manera:ggsave("name.eps", width = 20, height = 20, units = "cm")
DirtStats
31

El postscript()dispositivo permite la creación de EPS, pero solo si cambia algunos de los valores predeterminados. Lea ?postscriptpara conocer los detalles.

Aquí hay un ejemplo:

postscript("foo.eps", horizontal = FALSE, onefile = FALSE, paper = "special")
plot(1:10)
dev.off()
Gavin Simpson
fuente
Gracias. Estoy tratando de usarlo, pero hay un error: los márgenes del gráfico son demasiado grandes ...
the_drug
6
agrandar las dimensiones de la parcela: postscript("foo.eps", horizontal = FALSE, onefile = FALSE, paper = "special", height = 10, width = 10)por ejemplo. Las unidades están en pulgadas. El problema es que el dispositivo en el que está trazando no es lo suficientemente grande para contener los márgenes de la región de trazado que está utilizando.
Gavin Simpson
1
Necesitaba que el * .eps exportado funcionara en Microsoft Powerpoint, lo cual no era el caso inicialmente. Después de algunas pruebas y errores, noté que tenía que configurar adicionalmente el parámetro colormodel="rgb"de postscript ().
agoldev
14

Otra forma es utilizar dispositivos gráficos SVG, PDF y PostScript basados ​​en Cairographics. De esta manera no necesitassetEPS()

cairo_ps("image.eps")
plot(1, 10)
dev.off()
USER_1
fuente
Ésta es una sugerencia útil. cairo_psse diferencia postscripten que admite más glifos Unicode, pero tiene el inconveniente de que la semitransparencia se maneja mal y, a menudo, activará un mapa de bits en lugar de una salida vectorial.
ms609
4

Sí, abra un postscript()dispositivo con un nombre de archivo que termine en .eps, haga su (s) diagrama (s) y llame dev.off().

Dirk Eddelbuettel
fuente