我在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文件显示:
这显然不是预期的数字,它与Matlab显示的不同。当我使用"文件 - >另存为"选项,标签的边缘正确显示。
答案 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')