首页 文章

Matlab设置图的打印尺寸

提问于
浏览
1

我知道有很多关于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

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

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

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

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

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

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

    这里的 -loose 选项将确保它使用一个松散的边界框并赢得't crop the empty regions of your figure, resulting in an image of the dimensions you'重新开处方 .

相关问题