Saving "heavy" figure to PDF in MATLAB - rendering problem

Posted by yuk on Stack Overflow See other posts from Stack Overflow or by yuk
Published on 2010-03-11T18:24:43Z Indexed on 2010/03/11 19:29 UTC
Read the original article Hit count: 310

Filed under:
|
|
|

I generate a figure in MATLAB with lot amount of points (100000+) and want to save it into a PDF file. With zbuffer or painters renderer I've got very large and slowly opened file (over 4 Mb) - all points are in vector format. Using OpenGL renderer rasterize the figure in PDF, ok for the plot, but not good for text labels. The file size is about 150 Kb.

Try this simplified code, for example:

x=linspace(1,10,100000);
y=sin(x)+randn(size(x));
plot(x,y,'.')
set(gcf,'Renderer','zbuffer')
print -dpdf -r300 testpdf_zb
set(gcf,'Renderer','painters')
print -dpdf -r300 testpdf_pa
set(gcf,'Renderer','opengl')
print -dpdf -r300 testpdf_op

The actual figure is much more complex with several axes and different types of plots.

Is there a way to rasterize the figure, but keep text labels as vectors?

Another problem with OpenGL is that is does not work in terminal mode (-nosplash -nodesktop) under Mac OSX. Looks like OpenGL is not supported. I have to use terminal mode for automation. The MATLAB version I run is 2007b. Mac OSX server 10.4.

© Stack Overflow or respective owner

Related posts about matlab

Related posts about rendering