Here is my problem.
- I need to produce a transparent surface and save it to an eps file; this is a requirement of a publisher and no other file format will do.
- When producing this figure I have to use the painters renderer because it is the only one that produces vector output.
- I can’t use mesh or surf because the resulting surfaces will be opaque; if one changes the α of the surface then the opengl renderer is invoked and the resulting image is pixel based rather than vector based.
- I can’t use Matlab 2014 or later because changes to the vector graphics rendering makes the output unusable.
- I have a (not great but usable) workaround in Matlab 2013b that uses plot3 or scatter3. Figure A shows this solution as it appears on the screen and as it shows up in a jpeg file. This is what I want the figure to look like, but I want the output to be vectors so that the image will scale with the resolution of the output device.
- Figure B shows what the figure looks like when saved as an eps file. This is not what appears on the screen so something about the writing routine is wrong, or there is some flag that I’m unaware of. (The same discrepancy occurs when I use export_fig.)
- Note that even though the surface (smaller) symbols and the larger plot symbols were all generated with plot3, in the eps file the larger plot symbols properly occlude the smaller ones but not vice versa. This is the problem.
Can anybody tell me why this discrepancy between the screen version and eps version occurs?
Thanks very much,
Figure A. The image as it appears on the screen and when saved as a jpeg
Figure B. The image as it appears when saved to an eps file.