我在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具有相同的行为。
任何人都可以帮我修复它吗?
要确保输出是横向的:
set(gcf,'PaperOrientation','landscape')
然后使用“bestfit”选项。这将尽可能大地扩展它,但保持纵横比。
print(gcf, 'filename.pdf', '-dpdf','-r0','-bestfit')
有关Matlab's website的更多信息
默认情况下,MATLAB的PDF输出始终位于完整的A4或Letter大小的页面上。将“PaperPositionMode”设置为“auto”,这不会改变。对于其他输出文件格式(例如EPS),该设置使页面大小调整为图形大小。 PDF不是这样。您需要手动设置'PaperPosition'和'PageSize'属性。