【发布时间】:2014-09-10 13:34:28
【问题描述】:
我想用 EPS 格式保存一个图形:
saveas(gca, 'test.eps','epsc');
图形是用'contourf'和一个用于绘制箭头的自定义函数绘制的。 (我用的是别人写的package,对所有代码我不是很熟悉)
选择不同的'renderer'有3种情况。
案例1:当我使用
set(gcf,'renderer','painters');
EPS 图不完整,但“清晰”且尺寸较小。如图1(转换为png):
案例2:当我使用
set(gcf,'renderer','opengl');
或
do not use any 'renderer'
EPS 图完整但模糊,如图 2:
案例 3:当我使用时
set(gcf,'renderer','zbuffer');
或
set(findobj(gca,'type','patch'),'alphadatamap','none','facealpha',1);
EPS 图既不完整又模糊。
“不完整”表示“钟形”之外的部分缺失。
'Blur' 表示这个数字有点锯齿状。
我根据作者的notes(低于 5.k)使用这些“渲染器”。
问题来了:如何让EPS图既完整又清晰?
【问题讨论】:
-
我还没有解决方案,但问题几乎可以肯定是只有 opengl 渲染器支持透明度(即 alpha ~=1)
-
是软件问题(Matlab)还是电脑问题?也许我应该尝试其他版本的 Matlab 或在其他机器上运行它...
-
您是否使用其他查看器打开了 EPS 文件?根据我的经验,不同的观众(有时)以不同的方式显示 eps。确保您在最终生产情况下查看它,即如果它是用于纸质报告,请将其打印在纸上并查看它的外观。
-
我不确定,但这可能是 opengl 渲染器的问题(来自 mathworks 主页):
"OpenGL does not do colormap interpolation. If you create a surface or patch using indexed color and interpolated face or edge coloring, OpenGL interpolates the colors through the RGB color cube instead of through the colormap." -
另一件事,我还没有尝试过这个包,但是保存第一次绘制的图像有什么问题吗?一定要用渲染器吗?