在PDF文件中以正确的比例在Matlab中保存图形的问题

问题描述 投票:0回答:2

我在Matlab中有一个带有2x3子图的图,其中每个子图包含2个直方图。我通常在eps中保存Matlab数字,但是因为这样做会消除每个子图中直方图之间的透明度,所以我将其保存为pdf。

目前,这是我保存文件的方式:

figure;
set(gcf,'Position',[100 100 1400 500])
set(gcf,'PaperPositionMode','auto')
print(gcf, 'filename.pdf', '-dpdf','-r0');

但是,它会以纵向布局生成pdf文件,这意味着会删除一些子图。

现在,我一直在寻找网上的答案,并在this link给出了解决我的问题的推荐方法。

在这个方法之后,我没有删除任何子图,但问题是这会强迫图形填充我的pdf空间。换句话说,我的直方图被展开以横向格式填充pdf文件的空间。我只是更喜欢一个pdf文件,其比例与我上面的数字大小set(gcf,'Position',[100 100 1400 500])完全相同。这就是它如何与eps一起使用,所以我希望与pdf具有相同的行为。

任何人都可以帮我修复它吗?

matlab pdf matlab-figure
2个回答
2
投票

要确保输出是横向的:

set(gcf,'PaperOrientation','landscape')

然后使用“bestfit”选项。这将尽可能大地扩展它,但保持纵横比。

print(gcf, 'filename.pdf', '-dpdf','-r0','-bestfit')

有关Matlab's website的更多信息


0
投票

默认情况下,MATLAB的PDF输出始终位于完整的A4或Letter大小的页面上。将“PaperPositionMode”设置为“auto”,这不会改变。对于其他输出文件格式(例如EPS),该设置使页面大小调整为图形大小。 PDF不是这样。您需要手动设置'PaperPosition'和'PageSize'属性。

This File Exchange submission handles this for you(我是作者)。

© www.soinside.com 2019 - 2024. All rights reserved.