我在matlab中生成了一个包含大量元素(100000以上)的数字,并希望将其保存到一个pdf文件中。有了zbuffer或painters渲染器,我得到了一个非常大的缓慢打开的文件(超过4 MB)-所有点都是矢量格式的。使用OpenGL渲染器将图形光栅化为PDF格式,可以打印,但不适用于文本标签。文件大小约为150KB。
尝试此简化代码,例如:
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
实际数字要复杂得多,有几个轴和不同类型的图。
有没有办法将图形光栅化,但将文本标签保留为矢量?
OpenGL的另一个问题是,它不能在mac osx下的终端模式下工作(nosplash-nodesktop-nodisplay)。似乎不支持OpenGL。我必须使用终端模式来实现自动化。我运行的Matlab版本是2007b.mac osx服务器10.4。