Main Content

使用特定大小、分辨率或背景色保存图窗

要保存绘图以包含在文档(例如出版物或幻灯片演示文稿)中,请使用 exportgraphics 函数。此函数使您能够以适合您文档的大小、分辨率和背景色保存绘图。保存的内容会围绕坐标区精确裁剪,尽可能减少留白。所有 UI 组件和相邻的容器(例如面板)都不会包括在保存的内容中。

指定分辨率

要以特定的分辨率将图窗另存为图像,请调用 exportgraphics 函数,并指定 'Resolution' 名称-值对组参量。默认情况下,图像以每英寸 150 点 (DPI) 的分辨率保存。

例如,创建一个条形图并获取当前图窗。然后将图窗另存为 300-DPI PNG 文件。

bar([1 11 7 8 2 2 9 3 6])
f = gcf;
exportgraphics(f,'barchart.png','Resolution',300)

Bar chart.

或者,您也可以指定坐标区而不是图窗作为 exportgraphics 函数的第一个参量。

ax = gca;
exportgraphics(ax,'barchartaxes.png','Resolution',300)

指定大小

exportgraphics 函数会以您屏幕上显示的相同宽度和高度捕获内容。如果想要更改宽度和高度,请调整图窗中所显示内容的大小。一种方法是使用分块图布局方式以所需大小(没有任何填充)创建绘图。然后将该布局传递给 exportgraphics 函数。

例如,要将一个条形图另存为 3×3 英寸的方形图像,请先创建一个 1×1 的分块图布局 t,然后将 'Padding' 名称-值对组参量设置为 'tight'

t = tiledlayout(1,1,'Padding','tight');

在 R2021a 之前: 将 'Padding' 设置为 'none'

tUnits 属性设置为 inches。然后将 tOuterPosition 属性设置为 [0.25 0.25 3 3]。向量中的前两个数字将布局定位在距离图窗左侧和底部边缘 0.25 英寸的位置。后两个数字将布局的宽度和高度设置为 3 英寸。

t.Units = 'inches';
t.OuterPosition = [0.25 0.25 3 3];

下一步,通过调用 nexttile 函数创建一个坐标区对象。然后在坐标区中创建一个条形图。

nexttile;
bar([1 11 7 8 2 2 9 3 6])

通过将 t 传递给 exportgraphics 函数,将布局另存为一个 300-DPI 的 JPEG 文件。生成的图像是一个约 3 英寸的方形。

exportgraphics(t,'bar3x3.jpg','Resolution',300)

3-inch square bar chart.

另一种更改大小的方法是将内容另存为向量图形文件。然后,您可以在文档中调整内容大小。要将内容另存为向量图形文件,请调用 exportgraphics 函数,并将 'ContentType' 名称-值对组参量设置为 'vector'。例如,创建一个条形图,然后将图窗另存为一个包含向量图形的 PDF 文件。所有可嵌入字体均包含在 PDF 中。

bar([1 11 7 8 2 2 9 3 6])
f = gcf;
exportgraphics(f,'barscalable.pdf','ContentType','vector')

指定背景色

默认情况下,exportgraphics 函数使用白色背景保存内容。您可以通过设置 BackgroundColor 名称-值对组参量来指定其他背景。以下是可能的值:

  • 'current' - 使用坐标区父容器(例如图窗或面板)的颜色。

  • 'none' - 将背景色设为透明或白色,具体取决于文件格式和 ContentType 的值:

    • 透明 - 适用于 ContentType='vector' 的文件

    • 白色 - 适用于图像文件,或当 ContentType='image'

  • 自定义颜色,指定为 RGB 三元组(如 [1 0 0])、十六进制颜色代码(如 #FF0000)或指定颜色(例如 'red')。

例如,创建一个条形图,使用透明背景将图窗另存为一个 PDF 文件。

bar([1 11 7 8 2 2 9 3 6])
f = gcf;
exportgraphics(f,'bartransparent.pdf','ContentType','vector',...
               'BackgroundColor','none')

Bar chart.

保留坐标轴范围和刻度值

有时,exportgraphics 函数使用不同的坐标轴范围或刻度值来保存您的内容,具体取决于字体大小和文件的分辨率。要防止更改坐标轴范围和刻度值,请将坐标区的刻度值模式和范围模式属性设置为 'manual'。例如,在笛卡尔坐标区内绘图时,设置 x 轴、y 轴和 z 轴的刻度值和范围模式属性。

bar([1 10 7 8 2 2 9 3 6])
ax = gca; 
ax.XTickMode = 'manual';
ax.YTickMode = 'manual';
ax.ZTickMode = 'manual';
ax.XLimMode = 'manual';
ax.YLimMode = 'manual';
ax.ZLimMode = 'manual';
exportgraphics(ax,'barticks.png')

Bar chart.

对于极坐标图,将极坐标区的 RTickModeThetaTickModeRLimModeThetaLimMode 属性设置为 'manual'

另请参阅

函数

属性

相关主题