Pregunta

Tengo un histograma con varios cientos de artículos, para lo cual hago una parcela Q-Q. Esto resulta en EPS que es de 2,5 megabytes grande. Esto es demasiado para una figura que sólo va a ser incluido en una publicación y no va a ser visto con un aumento de 100x.

¿Hay alguna opción en I a EPS más pequeños de alguna forma de salida? He buscado documentos en vano. O es mi mejor opción de, digamos, rasterizar después en 300 dpi? Si ese es el caso, cualquier recomendación de la herramienta para este trabajo?

El código R para la trama es muy sofisticado:

postscript(filename)
qqnorm(n, main=title))
qqline(n)
dev.off()

EDIT: Doh! Mi pregunta mencionó la salida de EPS, y luego convertirlo a un formato raster. Cuando, por supuesto, tan sólo pudiera generar PNG en el primer lugar de R.

¿Fue útil?

Solución

He intentado varias cosas simplemente que no funcionó - Estoy incluirlos aquí para salvar a otros perder su tiempo. A modo de referencia, me puse n <- rnorm(1e5) en su código de seguridad.

Las cosas que no funcionan:

  1. Configuración colormodel <- "gray".

  2. Uso de un valor diferente de PCH. (Algunos otros valores Aumentar el tamaño del archivo, pero he encontrado ninguno que disminuirlo.)

  3. Configuración useKerning = FALSE.

  4. Modificación de los ajustes de anchura y altura.

  5. El uso de PDF en lugar de PostScript.

  6. Uso CarioPS del paquete Cairo.

A la luz de esto, creo que son poco probable que sea capaz de reducir el tamaño de archivo con un formato vectorial. Esto significa que usted tendrá que utilizar un formato de trama (lo más probable PNG).

Otros consejos

Hay tres opciones.

  1. Aceptar el tamaño del archivo grande
  2. Guarde el archivo en un formato de no vectorial como PNG
  3. Crea el QQplot en una muestra aleatoria de los datos. Una muestra aleatoria de unos pocos cientos de puntos debe dar una QQplot similar.

    postscript (nombre de archivo) Samp <- muestra (n, tamaño = 200) qqnorm (Samp, principal = título)) qqline (Samp) dev.off ()

En esta discusión en la lista de R- texto del enlace he aprendido acerca pdftk . Con n= 1e5 reducido el tamaño de 6 mb pdf a 600k. Bastante limpio!

en vista GS, convertir nuestros archivos a PDF, a continuación, convertir a PS o EPS de nuevo, el tamaño del archivo final se redujo 5-7 veces.

Bueno, EPS solo contiene instrucciones para extraer la trama, por lo que su tamaño dependerá en gran medida de la cantidad de puntos de datos que tiene. Lo más probable es menor en un PDF donde se utiliza la compresión, pero probablemente su mejor apuesta podría ser el uso de un formato de trama, que puede hacerse más pequeño que eso.

Me sospecho que el EPS R genera ya es tan pequeño como se puede conseguir (estoy seguro de que tienen una función propia en PostScript para manejar representación gráfica de los datos con un nombre de una sola char, etc ya que es bastante práctica común ). Dudo que hay muchas maneras de optimizar eso. Puedo estar equivocado, sin embargo, pero lo más probable es que R es el único programa que tiene suficiente información de alto nivel para comprimir razonablemente la salida.

El PO resolvió el problema mediante la generación de un archivo PNG directamente. Tuve que usar porque EPS PNG y otros formatos alias la imagen. Tendría que convertir a EPS de todas formas para incluir en un archivo de LaTeX.

He utilizado GIMP para importar el archivo eps 10 MB generado a partir de la función de imagen R. A continuación, girar, aplanado, y se guarda como un archivo EPS 300KB. Flattening combina todas las capas en una sola capa y elimina el canal alfa para la transparencia. Fácilmente manejado por látex después de esta transformación.

Antes de la transformación de la imagen hace muy lentamente en Santo Guión y no podía traducirse en absoluto en epsviewer. GIMP utiliza Ghostscript como interfaz, por lo que la importación es lento, pero, una vez importado, todo el procesamiento y la representación fue muy rápido.

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top