From: dave matthews on
several in my lab have uncovered this issue, with no efficient solution yet.

when plotting, for example, a mean signal with some standard error at each time point, we frequently plot the vector of the signal, and a filled but somewhat transparent view of the standard error. for example, for y vs x:

plot(x,meany)
fill([x fliplr(x), [stdy+meany fliplr(-std+meany)],'k','FaceAlpha',.3,'EdgeColor','k')

it all looks fine, until trying to save in a vectorized format (like .ai or .eps). In those cases, the 'FaceAlpha' argument to the function 'fill', causes problems. Without it, the problem ceases. i'm not sure, but i think it has to do with OpenGL.

saving is successful in .eps format, but opening in an image post-processing program (like adobe illustrator) shows that it is not vectorized. image quality is poor.

saving is unsuccessful in .ai format. the error is the following:
"Error using ==> hgexport at 858
Error using ==> render at 163
Error using ==> hardcopy
Adobe Illustrator driver does not print in Z-Buffer or OpengGL mode."

any suggestions welcome! thank you kindly!!

dave
From: dave matthews on
as a friend pointed out, this is an acknowledged issue with matlab and opengl
http://www.mathworks.com/matlabcentral/newsreader/view_thread/156913

there is a slightly clumsy workaround suggested using the command exportfig.m, described in the link below, which produces to output files: a vectorized file of text and bitmap file of images in the figure.
http://www.mathworks.com/company/newsletters/digest/december00/export.html
exportfig(gcf,'test.eps','separatetext',1);

> it all looks fine, until trying to save in a vectorized format (like .ai or .eps). In those
> cases, the 'FaceAlpha' argument to the function 'fill', causes problems. Without it, the
> problem ceases. i'm not sure, but i think it has to do with OpenGL.