Я создаю фигуру в MATLAB с большим количеством элементов (100000+) и хочу сохранить ее в файл PDF. С zbuffer или рендером живописцев у меня есть очень большой и медленно открываемый файл (более 4 Мб) - все точки в векторном формате Используя рендерер OpenGL, растеризуйте рисунок в PDF, хорошо для графика, но не подходит для текстовых меток. Размер файла составляет около 150 Кб.
Попробуйте этот упрощенный код, например:
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 состоит в том, что он не работает в терминальном режиме (-nosplash -nodesktop -nodisplay) под Mac OSX. Похоже, OpenGL не поддерживается. Я должен использовать режим терминала для автоматизации. Я запускаю версию MATLAB 2007b. Сервер Mac OSX 10.4.