使用特定大小、分辨率或背景色保存图窗
从 R2020a 开始提供。替换以特定大小和分辨率保存图窗 (R2019b) 和保存图窗时保留背景色 (R2019b)。
要保存绘图以包含在文档(例如出版物或幻灯片演示文稿)中,请使用 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)
或者,您也可以指定坐标区而不是图窗作为 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'
。
将 t
的 Units
属性设置为 inches。然后将 t
的 OuterPosition
属性设置为 [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)
另一种更改大小的方法是将内容另存为向量图形文件。然后,您可以在文档中调整内容大小。要将内容另存为向量图形文件,请调用 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')
保留坐标轴范围和刻度值
有时,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')
对于极坐标图,将极坐标区的 RTickMode
、ThetaTickMode
、RLimMode
和 ThetaLimMode
属性设置为 'manual'
。