保存为 eps/pdf 时 Matlab 图形内容丢失

Posted

技术标签:

【中文标题】保存为 eps/pdf 时 Matlab 图形内容丢失【英文标题】:Matlab figure contents lost while saving as eps/pdf 【发布时间】:2014-10-02 06:40:52 【问题描述】:

我已经尝试了大多数常用选项(print(figr,'-depsc','cross_corr.eps');)将matlab图形保存为eps / pdf,但每次我这样做时,图形内容都是部分保存,也许四分之一丢失。 我在这里分享了这个图:http://ge.tt/2ZrsdD02/v/0?c

使用如下选项完全保存,但我更喜欢直接保存为 inti eps/pdf:

print(figr, '-dpng', 'cross_corr.png'); 

【问题讨论】:

究竟丢失了什么?我无法复制。无论如何,您可以尝试以下几件事:打印前set(gcf,'PaperPositionMode','auto')。在 matlab 文件交换中,有一个名为export_fig 的函数,在保存图形内容方面我很幸运,您可能会发现它也很有用。 很遗憾,这并没有多大帮助。请查看我的“答案”以了解究竟丢失了什么。 【参考方案1】:

问题似乎是图形的'PaperPosition' 属性中的值非常小。尝试将它们更改为默认值,

set(figr, 'PaperPosition', [0.634517 6.34517 20.3046 15.2284])

然后申请您的print(figr, '-depsc', 'cross_corr.eps')

我在我的电脑上附上了没有和有'PaperPosition'校正的结果(使用带有边界框的GSview):

另外,考虑减小字体大小以避免重叠文本:

set(findobj('type','text'), 'Fontsize', 5)

【讨论】:

谢谢,但质量似乎不太好。请在下面查看我的答案。 质量非常好,因为它是矢量文件(eps)。不要被上面的数字误导了;它们只是屏幕截图【参考方案2】:

如果我先放大图形大小(使用右上角的中间按钮),然后将其保存为 eps,我会得到:http://ge.tt/1Pv8YE02/v/0

与所有其他选项相比,质量非常好,内容也还可以。

不能通过脚本自动化吗?...

【讨论】:

从一开始就让你的身材变大:scrsz = get(0,'ScreenSize'); fig_handle = figure('Position',[0 0 scrsz(3), scrsz(4)]);

以上是关于保存为 eps/pdf 时 Matlab 图形内容丢失的主要内容,如果未能解决你的问题,请参考以下文章

如何使用 saveas() 将 MATLAB 图形保存为 JPEG 而图像不严重?

MATLAB:使用默认名称保存图

MATLAB 'saveas' 将我的图形保存为正方形。但我希望它们更矩形

如何在 Matlab 中将线阵列保存为图形

在 Matlab 中保存为图形格式文件的图像的大小和分辨率

在 MATLAB 中将输出图形保存为 png 文件