3

我想用 EPS 格式保存一个图形:

saveas(gca, 'test.eps','epsc');

该图使用“contourf”和用于绘制箭头的自定义函数绘制。(我用的是别人写的,对所有的代码都不是很熟悉)

选择不同的“渲染器”时有 3 种情况。

案例1:当我使用

set(gcf,'renderer','painters');

EPS 图不完整,但“清晰”且尺寸较小。如图1(转换为png): 在此处输入图像描述

案例2:当我使用

set(gcf,'renderer','opengl');

或者

 do not use any 'renderer'

EPS 图完整但模糊,如图 2: 图 2

案例3:当我使用

set(gcf,'renderer','zbuffer');

或者

set(findobj(gca,'type','patch'),'alphadatamap','none','facealpha',1); 

EPS 图既不完整又模糊。

“不完整”意味着“钟形”之外的部分缺失。

“模糊”意味着这个数字是锯齿状的。

我根据作者的注释使用这些“渲染器” (低于 5.k)。

问题来了:如何让EPS图既完整又清晰?

4

1 回答 1

0

正如@RTL 提到的,情况(1)和(3)的问题是您使用的是透明补丁(小波分析中的“影响锥”),并且画家zbuffer都不支持透明度(zbuffer 已在更多Matlab 的最新版本)。如果您更改任何对象的 alpha 值(透明度),MatLab 将自动切换到opengl作为图形渲染器。

现在,至于模糊,您可以通过将“GraphicsSmoothing”选项设置为“off”来解决这个问题(请参阅有关此的matlab 文档),但此选项仅从2014b 开始可用。或者,您可以在 Stack Overflow 中查看此相关问题

最后,如果你有一个好的矢量编辑程序(比如 Illustrator),你可以从 Matlab 导出画家渲染的 EPS 文件(PDF 也可以),并使用外部编辑器使影响锥半透明(你会发现轮廓在 EPS 后面是完整的)。更少的工作:使用一条线来描绘影响锥,而不是一个补丁。

于 2015-07-20T04:40:14.060 回答