我正在尝试制作Matlab,7.10.0.499(R2010a),使用print
写出一个数字到eps,但无论我设置的数字是什么纸张大小,它都会保留轴标签的裁剪,除非我把它变成A3。
这是一个说明问题的png(虽然我知道png来自不同的渲染管道)。
生成此图表的代码是:
figure,
set(gcf, 'renderer', 'painters');
loglog(p_m_tt, p_fa_tt, 'k-', 'LineWidth', 2); hold on;
loglog(p_m_oo, p_fa_oo, 'k--', 'LineWidth', 2); hold on;
loglog(p_m_ot, p_fa_ot, 'k-.', 'LineWidth', 3); hold on;
fontSize = 9;
l = legend('Cam1-Cam1', 'Cam2-Cam2', 'Cam2-Cam1', ...
'Location', 'NorthEast');
fontSize = 20;
xlabel('$P_{fa}$', 'fontsize', fontSize);
ylabel('$P_{m}$', 'fontsize', fontSize);
set(gca, 'XMinorTick', 'off', 'YMinorTick', 'off', 'YGrid', 'on', 'XGrid', 'on');
set(gcf, 'PaperPositionMode', 'auto');
set(gca, 'XTick', [0.00001 0.0001 0.001 0.01 0.1 1]);
set(gca, 'MinorGridLineStyle', 'none');
set(gca, 'FontSize', fontSize);
set(gcf, 'defaultAxesFontName', 'Times New Roman');
axis square;
X = 13;
Y = 13;
xMargin = 0.25; %# left/right margins from page borders
yMargin = 0.25; %# bottom/top margins from page borders
xSize = X - 2*xMargin; %# figure size on paper (widht & height)
ySize = Y - 2*yMargin;
set(gcf, 'PaperUnits', 'centimeters');
set(gcf, 'PaperSize', [X Y]);
set(gcf, 'PaperPosition', [0 0 xSize ySize]);
print('-depsc2', f);
答案 0 :(得分:2)
在打印时使用-loose
选项,以便matlab不会裁剪它。有关详细信息,请参阅打印帮助文件。
答案 1 :(得分:1)
我拿了你的代码并运行它(当然更换变量以绘制虚拟数据)并在插图画家中加载eps,它就出来了。您使用的是哪个版本的matlab?
另外,为了以防万一,我确实稍微修改了代码,因为之前没有运行,因为变量“f”没有定义,我包括代码和我得到的一个例子:< / p>
f=figure;
set(gcf, 'renderer', 'painters');
p_m_tt=10e-4*0:0.001:1;
p_m_oo=p_m_tt;
p_m_ot=p_m_oo;
p_fa_tt=rand(size(p_m_tt));
p_fa_oo=rand(size(p_m_tt));
p_fa_ot=rand(size(p_m_tt));
loglog(p_m_tt, p_fa_tt, 'k-', 'LineWidth', 2); hold on;
loglog(p_m_oo, p_fa_oo, 'k--', 'LineWidth', 2); hold on;
loglog(p_m_ot, p_fa_ot, 'k-.', 'LineWidth', 3); hold on;
l = legend('Cam1-Cam1', 'Cam2-Cam2', 'Cam2-Cam1', ...
'Location', 'NorthEast');
fontSize = 20;
xlabel('$P_{fa}$', 'fontsize', fontSize);
ylabel('$P_{m}$', 'fontsize', fontSize);
set(gca, 'XMinorTick', 'off', 'YMinorTick', 'off', 'YGrid', 'on', 'XGrid', 'on');
set(gcf, 'PaperPositionMode', 'auto');
set(gca, 'XTick', [0.00001 0.0001 0.001 0.01 0.1 1]);
set(gca, 'MinorGridLineStyle', 'none');
set(gca, 'FontSize', fontSize);
set(gcf, 'defaultAxesFontName', 'Times New Roman');
axis square;
X = 13;
Y = 13;
xMargin = 0.25; %# left/right margins from page borders
yMargin = 0.25; %# bottom/top margins from page borders
xSize = X - 2*xMargin; %# figure size on paper (widht & height)
ySize = Y - 2*yMargin;
set(gcf, 'PaperUnits', 'centimeters');
set(gcf, 'PaperSize', [X Y]);
set(gcf, 'PaperPosition', [0 0 xSize ySize]);
print('-depsc2', f,'figure2.eps');
答案 2 :(得分:1)
除了修改图PaperPosition
之外,还可以修改轴position
属性。可以通过以下方式检索当前设置:
get(gca, 'position')
ans =
0.1300 0.1300 0.7750 0.7750
这些编纂为[left bottom width height]
。然后通过增加前两个数字并减少后两个数来增加边距:
set(gca, 'position', [.15, .15, .74, .74]);