3

我在这里看到了很多关于从 Matlab 图形中挤出空间的问答。但是,我想压缩由可能固定的方面造成的空间,即在方面固定时为图形打印选择合适的纸张尺寸。

我经常使用 DEM/map/image,因此我使用axis image. 现在,如果我想制作高分辨率图像,我会执行类似的操作

set(gcf,'PaperUnits','inches','PaperPosition',[0 0 4 3])
print('-dpng','-r300','somefile.png')

Matlab KB中所述。

这里的问题是确定一个合适的方面,这样我就可以指定合适的纸张尺寸,不会在两边留下白色/背景条纹。

显然,如果我有一张纵横比为 0.5 的地图(比如说 1000x2000 单元格),并且我将它打印在 4"x3" 纸上,我会在侧面得到背景条纹。这很烦人,因为我更喜欢 1.5"x3" 纸 + 轴和标签左右。现在我必须手动调整纸张大小。

这很不方便,因为我想要一个通用的解决方案。例如,我可以将一个图打印到我希望占用 4"x3" 的文件中,并且没有固定的方面。或者我可能想打印一个 3D 图形。我知道 daspect 和 pbaspect,但是我怎么知道它当前是如何绘制的?

也许我可以从中获得当前的 2D 方面get(gca,'Position'),然后将其缩放到我允许的最大所需大小(例如,4“x3”),同时考虑DataAspectRatioMode (?) 属性是否设置为manual。这是继续的方法还是有更好的方法?

4

1 回答 1

0

我不确定我是否完全理解您的问题,但我使用以下命令创建大小与图形大小完全一致的 pdf 图像。我已将其用于 2D 和 3D 图形。“句柄”变量只是您的图形句柄。

set(handle,'Units','inches');
set(handle,'PaperUnits','Inches','PaperPositionMode','auto');
P = get(handle,'Position');
set(handle,'PaperSize', [P(3),P(4)]);
于 2012-07-13T14:49:51.910 回答