打印/保存和导出之间的区别

时间:2015-04-27 06:31:10

标签: matlab matlab-figure

我在Matlab中做了一些情节,但是当导出为pdf时,我没有得到我在屏幕上看到的相同结果。特别是,我试图将白边添加到图例中。

leg1 = legend(names);
set(leg1,'EdgeColor',[1 1 1]);

使用"文件 - >另存为 - > Out.pdf"边缘是白色的,但是当我使用saveas(gca,'Out.pdf')print -dpdf Out.pdf时,边缘是黑色的。当我使用导出功能时,Matlab在做什么?如何从命令行获得相同的结果?

修改

为了清楚起见,这是一个示例代码:

plot(rand(10,1))
leg1 = legend('Data');
set(leg1,'EdgeColor',[1 1 1]);
print -dpdf Out.pdf

pdf文件显示: enter image description here

这显然不是预期的数字,它与Matlab显示的不同。当我使用"文件 - >另存为"选项,标签的边缘正确显示。

2 个答案:

答案 0 :(得分:2)

从“文件 - >另存为”保存时,它会运行mfile filemenufcn

您可以从命令行直接调用它:

filemenufcn ( figHandle, 'FileSaveAs' )

令人遗憾的是,Mathworks不允许您传入文件名以直接保存...

您可以调查该函数,以便在保存之前查看函数对图形的作用。

仅供参考:在最新的Matlab(R2015a)中,实际保存为pdf的最终代码为hgexport。 (这是一个p代码文件,但确实有一些基本的帮助)你可以直接在命令行调用它。

您还应该查看export_fig,这是将图形导出到文件的绝佳工具。

答案 1 :(得分:1)

恐怕其他答案并不能真正回答问题。这是您将白线/文本“打印”到文件的方式:运行

set(gcf, 'InvertHardCopy', 'off');

在使用print命令之前。

但是,对于您的特定情况,由于您只是想隐藏框框,因此更好的方法是

legend boxoff

legend('boxoff')

来源:https://www.mathworks.com/matlabcentral/answers/102484-why-does-my-white-text-become-black-in-my-figure-when-printing-to-an-emf-file-in-matlab-7-5-r2007b