Matlab设置图的打印尺寸

时间:2016-07-21 13:30:58

标签: matlab matlab-figure

我知道有很多关于matlab打印问题的问题,但我似乎无法解决这个问题。

我想打印/保存我的图形,打印尺寸为17x23cm。分辨率为600dpi。

我试过这个

set(gcf, 'Units', 'centimeters', 'Position', [0 0 17 23], 'PaperUnits', 'centimeters', 'PaperSize', [17 23]);

然后我使用export_fig脚本并执行以下任一操作

export_fig Test.pdf -pdf -transparent;
export_fig Test.pdf -pdf -transparent -r600;

无论哪种方式,我得到一个~14x19厘米的数字。分辨率仅为100dpi。

所以我想,对于一个17厘米的数字,600dpi可以是~4,000像素。因此,让我们将屏幕上的数字设置为多个像素

set(gcf, 'Units', 'pixels', 'Position', [0 0 4000 5500]);

但这不起作用。我假设因为我的显示器不足以支持那么多像素,所以它不会显示。而且我不能保存它,因为这个数字甚至都没有显示出来。

我知道我可以在gimp或插画家之后调整大小。但我真的不想。

如何以特定分辨率(600dpi)的特定打印尺寸(17cm)导出/保存pdf / eps图表?

1 个答案:

答案 0 :(得分:0)

使用export_fig打印将裁剪生成的图形以删除任何空白区域(图形中没有内容的位置)。因此,输出将小于您指定的Position

为防止这种情况发生,您可以使用-nocrop选项。

export_fig('Test.pdf', '-pdf', '-nocrop', '-transparent', '-r600')

指定分辨率实际上只是为了对光栅图像产生影响,对于像PDF这样的矢量图形格式,这实际上不应该有效。您是如何确定PDF的“分辨率”的?

另一种选择是使用内置的print功能来创建图像

print('myimage.pdf', '-dpdf', '-loose', '-r600')

这里的-loose选项将确保它使用松散的边界框,并且不会裁剪图形的空白区域,从而生成您要处方的尺寸图像。