我正在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显示的数字不同。当我使用“文件->另存为”选项时,标签的边缘会正确显示。
从“文件->另存为”保存时,它将运行mfile filemenufcn
。
您可以从命令行直接调用它:
filemenufcn ( figHandle, 'FileSaveAs' )
很遗憾,Mathworks不允许您传递文件名直接保存...
您可以调查该功能,以查看该功能在保存之前对图形的作用。
FYI:在最新的Matlab(R2015a)中,实际保存为pdf的最终代码为hgexport
。 (这是一个p代码文件,但确实有一些基本帮助)您可以在命令行中直接调用它。
您还应该查看export_fig,这是将图形导出到文件的出色工具。
恐怕其他答案并不能真正回答问题。这是您将白线/文本“打印”到文件的方式:运行
set(gcf, 'InvertHardCopy', 'off');
使用print
命令之前。
但是,对于您的特定情况,由于您只是试图隐藏框的边框,因此更好的方法是
legend boxoff
或
legend('boxoff')