3
我有一個圖,我想調整大小,然後打印成PDF格式。只要我不調整數字也大幅 使用類似MATLAB:正確調整圖形的大小
set(hFig, 'PaperUnits', 'centimeters')
set(hFig, 'PaperSize', [x_B x_H]);
工作。如果我降低高度,那麼xlabel會在某些點移出圖形。我已經搜索了很多,但只找到了一個解決方案來手動調整基本軸對象
scalefactor = 0.96;
movefactor = 0.82;
hAx = get(gcf,'CurrentAxes');
g = get(hAx,'Position');
% 1=left, 2=bottom, 3=width, 4=height
g(2) = g(2) + (1-movefactor)/2*g(4);
g(4) = scalefactor*g(4);
set(hAx,'Position',g);
,因爲我必須手動調整兩個因素,我不喜歡這種方式。
在打印之前,我將所有文本對象的「解釋器」設置爲「膠乳」(如果這是關注的話)。 印刷使用
print(hFig, '-dpdf', '-loose', 'test.pdf');
我希望通過「-loose」鬆開邊框實現。任何幫助,高度讚賞!
編輯: 似乎真的是解釋器(無,tex,乳膠)在這起作用。我得到了這裏的這篇文章的啓發(http://stackoverflow.com/questions/5150802/how-to-save-plot-into-pdf-without-large-margin-around),並提出了這種解決方案:
tightInset = get(gca, 'TightInset');
position(1) = tightInset(1);
position(3) = 1 - tightInset(1) - tightInset(3);
if strcmpi(x_Interpreter,'latex')
position(2) = tightInset(2)+ 1*tightInset(4);
position(4) = 1 - tightInset(2) - 2*tightInset(4);
else
position(2) = tightInset(2)+ 0*tightInset(4);
position(4) = 1 - tightInset(2) - 1*tightInset(4);
end
set(gca, 'Position', position);
您可以發佈一個最小的非工作示例,以便我們可以重現您的錯誤? – abcd 2011-05-08 13:12:21
您是否嘗試過先調整大小,然後設置軸等? – Crowley 2011-05-09 09:56:11
值得注意的是,「打印」命令的行爲可能取決於您的顯示器分辨率設置(至少在Windows下的某些版本的MATLAB上)。這在試圖打印大圖像時尤其明顯。當我準備印刷/出口數據時,我傾向於明確指定尺寸以避免頭痛。 – 2011-05-09 15:31:51