保存为 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 而图像不严重?