[R] Thinning Lattice Plot

David Winsemius dwinsemius at comcast.net
Tue Jul 31 00:47:29 CEST 2012


On Jul 30, 2012, at 2:13 PM, Elliot Joel Bernstein wrote:

> Is there an easy way to "thin" a lattice plot? I often create plots  
> from
> large data sets, and use the "pdf" command to save them to a file,  
> but the
> resulting files can be huge, because every point in the underlying  
> dataset
> is rendered in the plot, even though it isn't possible to see that  
> much
> detail.
>
> For example:
>
> require(Hmisc)
> x <- rnorm(1e6)
>
> pdf("test.pdf")
> Ecdf(x)
> dev.off()
>
> The resulting pdf files is 31MB. Is there any easy way to get a  
> smaller pdf
> file without having to manually prune the dataset?

There are plotting routines that display the density of distributions.  
I use hexbin fairly frequently but that is for 2d plots.  If you  
wanted the ECDF of a 1d vector, you could use cumsum() on the output  
of hist() or quantile() with suitable arguments to their parameters to  
control the degree of aggregation. Either of these yields an 8KB file  
on my machine.

 > pdf("test.pdf")
 > xyplot( cumsum(hist(x, plot=F)$intensities) ~ hist(x, plot=F) 
$breaks )
 > dev.off()
quartz
      2

 > pdf("test.pdf")
 > xyplot( (0:100)/100 ~ quantile(x, prob=(0:100)/100)  )
 > dev.off()
quartz
      2



>
> Thanks.
>
> - Elliot
>
> -- 
> Elliot Joel Bernstein, Ph.D. | Research Associate | FDO Partners, LLC
> 134 Mount Auburn Street | Cambridge, MA | 02138
> Phone: (617) 503-4619 | Email: elliot.bernstein at fdopartners.com
>

David Winsemius, MD
Alameda, CA, USA



More information about the R-help mailing list