【问题标题】:Matlab setting print size of figureMatlab设置图形的打印大小
【发布时间】:2016-11-25 03:08:40
【问题描述】:

我知道有很多关于 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 厘米的人物来说,600 dpi 大约是 4,000 像素。所以让我们将屏幕上的图形设置为那么多像素

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

但这不起作用。我想是因为我的显示器不够大,无法支持那么多像素,所以它不会显示。然后我无法保存它,因为这个数字甚至没有出现。

我知道我可以在 gimp 或 illustrator 中调整大小。但我真的不想。

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

【问题讨论】:

    标签: matlab matlab-figure


    【解决方案1】:

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

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

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

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

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

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

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

    【讨论】:

    • 完美。谢谢,我不知道我是怎么错过它被裁剪的。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-07-08
    • 1970-01-01
    • 2012-03-27
    • 1970-01-01
    • 2012-01-10
    相关资源
    最近更新 更多