Me encanta las parcelas que ggplot genera. Sin embargo, aún es algo engorroso para obtener una calidad de publicación parcelas directamente. Por lo general, tienen que hacer algunos post procesamiento en Illustrator (es decir, cambiar las fuentes, la numeración de figuras, etc). Mientras yo podía guardar como tiff o png, eps es mejor para la manipulación de las cifras en Illustrator (me pueden desagrupar objetos, mover la leyenda de texto/etc).

Cuando puedo guardar una ggplot objeto con un poco de transparencia (ya sea en puntos o más suave) me sale este error:

Warning message:
In grid.Call.graphics("L_points", x$x, x$y, x$pch, x$size) :
  semi-transparency is not supported on this device: reported only once per page

¿Hay una solución?

  • A continuación también una fácil solución a la exportación en un vector editable formato basado directamente en Powerpoint, donde usted puede fácilmente solucionar pequeños problemas de formato, y con la completa preservación de la transparencia. A ver si que se adapte a usted…
  • Creo que mi respuesta a continuación de forma más precisa y totalmente responde a su pregunta, así que usted puede comprobar que la respuesta correcta – bueno, a ver qué te parece…
  • Agrega una solución de abajo con el nuevo paquete de exportación – yo creo que uno debe ser marcado como respuesta correcta, de hecho,…
InformationsquelleAutor Maiasaura | 2010-10-22

6 Comentarios

  1. 16

    R eps de «dispositivo» no admite transparencia parcial, pero, si recuerdo correctamente, su PDF dispositivo. El ilustrador debe ser capaz de leer los archivos Pdf con la misma facilidad a EPSes, o si no, tratar de convertir a ellos después de la generación con pdftops (no pdf2ps, son totalmente diferentes programas y pdf2ps de salida es inferior…).

    Tenga en cuenta que R no se trata de optimizar su salida PDF en todos los, por lo que incluso si usted consigue una trama que no necesita de postproducción, que se desea ejecutar a través de una utilidad de compresión como qpdf al menos.

    • Gracias! Para aquellos de ustedes en OSX, <a href=»aquítex.aanhet.net/epspdf/#install»>aquí</a> es una sencilla herramienta para convertir de pdf a la eps.
    • Er… esto no funciona. A menos que me falta una opción, si trato pdftops -eps graph.pdf graph.eps, donde gráfico semi-transparente líneas vectoriales, entonces las partes de la gráfica será rasterised en la EPS. Esto es bastante inútil (yo puede también convertir a jpeg). tex.stackexchange.com/a/24287/13192 indica que postscript no admite la semi-transparencia en todos los…
    • Eh, pensé que se había añadido a postscript en algún momento. No sé cuál sea tu situación, pero me gustaría tratar de eliminar el uso de los archivos EPS en total — pdfTeX, por ejemplo, puede sorber en PDF-formato de gráficos de bien (de hecho esto es fácil que llegar a comer EPSes).
    • Zack: lo sé. A mí me funciona. Yo no puedo ayudar a que el diario que estoy presentando es tecnológicamente atrasadas, aunque.
    • Sí, puede ser de hasta un arroyo, lo siento.
  2. 27

    Esto funciona:

    ggsave("filename.eps", device=cairo_ps)
    • Esto hace el trabajo. ¿Por qué fue votada abajo sin comentarios?
    • Estoy de acuerdo, esta es una gran solución que voy a utilizar con frecuencia.
    • Como se ha señalado aquí, stackoverflow.com/a/31380625/4598520 cairo_ps automáticamente rasteriza la transparencia, sino que lo hace en baja resolución (72 dpi)
    • Usted puede también agregar el argumento fallback_resolution para el control de la resolución en la que semi-transparente áreas rasterizadas (este fue introducido en una actualización reciente de R), por ejemplo, usted puede ahora utilizar ggsave(«nombre de archivo.eps», dispositivo=cairo_ps, fallback_resolution = 600)
    • Puedo obtener una inusitada argumento de error al intentar agregar el fallback_resolution? @TomWenseleers
    • Así que para mí esto funciona aunque: cairo_ps(archivo = «prueba.eps»,onefile = FALSE,fallback_resolution=600) qplot(Sépalo.La Longitud Del Pétalo.Longitud, data = iris, color = Especies, size = Pétalo.Ancho, alfa = I(0.7)) dev.off()
    • Y no me da un error cuando intento ggsave(«nombre de archivo.eps», dispositivo=cairo_ps, fallback_resolution=600) o bien… estoy trabajando en Windows, y usted?
    • Esto es en R 3.3.3 – sé que ha sido introducido hace relativamente poco tiempo, así que es la versión R de que usted está usando un reciente?

  3. 19

    Yo tenía los mismos problemas con el uso de la postscript función. He encontrado que cairo_ps de la grDevices paquete de apoyo a la transparencia (al menos en Ubuntu 10.04 con R versión 2.10.1). El uso sería:

    cairo_ps(filename='filename.eps', width=7, height=7)
    plot(x,y)
    dev.off()
    • esto funciona muy bien! gracias.
    • Estoy de acuerdo: ¡genial !
    • Usted puede también agregar el argumento fallback_resolution para el control de la resolución en la que semi-transparente áreas rasterizadas (este fue introducido en una actualización reciente de R) (por ejemplo, fallback_resolution=600 600 dpi)
  4. 6

    También se podría tratar de exportar como SVG a través de la svg dispositivo. No estoy seguro si Illustrator puede leer SVG, pero Inkscape, y es de código abierto 🙂 he hecho algunas cosas buenas con salida R a SVG de Inkscape, y las agrupaciones se conserva como con la EPS. No se puede estar 100% seguro de que controla la opacidad pero estoy seguro que en el estándar SVG.

    • SVG también funciona aunque creado raro, grandes, semitransparentes letras en el fondo. Hubo una muy grande O,X,Y en el fondo. Pero yo era capaz de eliminar aquellos. Así que esta es otra opción que permite la omisión de la conversión. gracias.
  5. 4

    El formato EPS, en principio, no admite la semi-transparencia – si usted desea semi-transparencia y ser capaz de editar en Illustrator o Inkscape mejor que exportar a SVG o PDF. Si usted está muy ligada a la EPS el formato que usted podría utilizar el cairo dispositivo, sin embargo, y especificar en qué resolución semi-transparente de los objetos necesitan ser rasterizado (sólo la no-semitransparentes elementos estancia como formato vectorial, a continuación, a pesar de que, semi-transparente áreas rasterizadas a mapa de bits). La sintaxis es:

    cairo_ps(file = "test.eps", onefile = FALSE, fallback_resolution = 600)
    qplot(Sepal.Length, Petal.Length, data = iris, color = Species, size = Petal.Width, alpha = I(0.7))
    dev.off()

    o

    ggsave("filename.eps", device=cairo_ps, fallback_resolution = 600)

    Una opción alternativa es la exportación a MS Office Powerpoint en formato vectorial, y hacer cualquier edición de diseño de allí. Esto se puede hacer fácilmente usando mi nuevo export paquete,
    ver
    https://cran.r-project.org/web/packages/export/index.html y para la demostración
    https://github.com/tomwenseleers/export

    Típica sintaxis es muy fácil, por ejemplo:

    install.packages("export")
    library(export)
    library(ggplot2)
    qplot(Sepal.Length, Petal.Length, data = iris, color = Species, 
          size = Petal.Width, alpha = I(0.7))     
    graph2ppt(file="ggplot2_plot.pptx", width=6, height=5) 

    Esto se traduce en una totalmente editable, de alta calidad gráfico de Powerpoint en Office nativo basado en vectores DrawingML formato, con soporte completo para la transparencia. Allí usted puede fácilmente solucionar pequeños problemas de formato, y la exportación a PDF de alta calidad al imprimir en PDF.

    También se puede utilizar para la exportación a Word, Excel, Látex o HTML y también se puede utilizar para exportar la producción estadística de R diferentes estadísticas de los objetos.

    También tiene un graph2eps(file="plot.eps", width=6, height=5, fallback_resolution=600) función para exportar a eps con la rasterización de semi-transparente áreas…

  6. 0

    He encontrado una manera fácil de hacerlo.

    El uso de «zoom», en R de la trama y haga clic derecho del ratón para copiar la imagen. Usted puede obtener una parcela con sombra.

Dejar respuesta

Please enter your comment!
Please enter your name here