[R] PDF too large, PNG bad quality

Benilton Carvalho bcarvalh at jhsph.edu
Thu Oct 22 21:18:52 CEST 2009


Dear Lasse,

This won't answer your specific questions and I apologize for that.  
AFAIK, pdf() produces uncompressed PDFs only. But you could use tools  
like pdftk to compress your PDFs. About the PNGs, you can always set  
the 'res' argument to improve resolution, but it won't beat the PDFs.

I'm not sure the reader (of your LaTeX document) would be interested  
in seeing each of the 2M points of your scatter plot and, even if he  
was, I doubt he could. So, instead of plot(x, y), have you considered  
using:

smoothScatter(x, y)

?

Cheers,

b

On Oct 22, 2009, at 5:07 PM, Lasse Kliemann wrote:

> I wish to save a scatter plot comprising approx. 2 million points
> in order to include it in a LaTeX document.
>
> Using 'pdf(...)' produces a file of size about 20 MB, which is
> useless.
>
> Using 'cairo_pdf(...)' produces a smaller file, around 3 MB. This
> is still too large. Not only that the document will be too large,
> but also PDF viewers choke on this. Moreover, Cairo has problems
> with text: by default text looks ugly, like scaled bitmaps. After
> hours of trying different settings, I discovered that choosing a
> different font family can help, e.g.: 'par(family="Mono")'. This
> gives good-looking text. Yet, the problem with the file size
> remains.
>
> There exists the hint to produdc EPS instead and then convert to
> PDF using 'epstopdf'. The resulting PDF files are slightly
> smaller, but still too large, and PDF viewers still don't like
> it.
>
> So I gave PNG a try. PNG files are much smaller and PDF viewers
> have no trouble with them. However, fonts look ugly. The same
> trick that worked for Cairo PDF has no effect for PNG. When I
> view the PNGs with a dedicated viewer like 'qiv', even the fonts
> look good. But not when included in LaTeX; I simply use
> '\includegraphics{...}' and run the document through 'pdflatex'.
>
> I tried both, creating PNG with 'png(...)' and converting from
> PDF to PNG using 'convert' from ImageMagick.
>
> So my questions are:
>
> - Is there a way to produce sufficiently lean PDFs directly in R,
>  even when the plot comprises several million points?
>
> - How to produce a PNG that still looks nice when included in a
>  LaTeX PDF document?
>
> Any hints will be greatly appreciated.
>
> Thank you
> Lasse
> <ATT00001><ATT00002.txt>




More information about the R-help mailing list