exportgraphics
导出图窗或图
说明
示例
创建一个线图并获取当前坐标区。然后将坐标区的内容保存为 JPEG 文件。
plot(rand(5,5))
ax = gca;
exportgraphics(ax,'LinePlot.jpg')
显示一个图像并获取当前坐标区。然后将坐标区的内容保存为 300-DPI JPEG 文件。
I = imread('peppers.png'); imshow(I) ax = gca; exportgraphics(ax,'Peppers300.jpg','Resolution',300)

自 R2025a 起
要指定导出文件的宽度和高度,请创建一个具有相似大小和纵横比的图窗。例如,在大小为 500×400 像素的图窗中创建一个针状图。然后将该图窗导出为 500×400 像素的 PNG 文件,包含在每条边上填充的 10 个像素。
f = figure; f.Position(3:4) = [500 400]; stem(1:10,"filled",LineWidth=2) ylim padded exportgraphics(f,"stemplot.png",Units="pixels", ... Width=500,Height=400,Padding=10)

显示一个具有超出坐标区边界的注解的绘图。将图窗的内容保存为 PDF 文件。
plot(1:10) annotation('textarrow',[0.06 0.5],[0.73 0.5],'String','y = x ') f = gcf; exportgraphics(f,'AnnotatedPlot.pdf')

显示一个条形图并获取当前坐标区。然后将坐标区的内容保存为仅包含矢量图的 PDF。
bar([10 22 31 43]) ax = gca; exportgraphics(ax,'BarChart.pdf','ContentType','vector')

要创建多页 PDF,请将 'Append' 名称-值参量设置为 true。
例如,创建一个线图并将坐标区的内容保存到文件 myplots.pdf 中。
plot([0 0.3 0.1 0.6 0.4 1])
ax = gca;
exportgraphics(ax,'myplots.pdf')
接下来,创建一个条形图,并将坐标区的内容保存为 myplots.pdf 中的第二页。
bar(1:10) exportgraphics(ax,'myplots.pdf','Append',true)

绘制一条带一个标记的抛物线。在 for 循环的每次迭代中更改该标记的位置,并将这些更改捕获为动画 GIF 中的帧。
x = -10:0.5:10; y = x.^2; p = plot(x,y,"-o","MarkerFaceColor","red"); for i=1:41 p.MarkerIndices = i; exportgraphics(gca,"parabola.gif","Append",true) end

在分块图布局中显示两个绘图。然后通过将 TiledChartLayout 对象传递给 exportgraphics 函数,将这两个图保存为一个 PDF。
t = tiledlayout(2,1);
nexttile
plot([1 2 3])
nexttile
plot([3 2 1])
exportgraphics(t,'Layout.pdf')
如果您只想保存布局中的一个图,请在调用 nexttile 函数时包含坐标区返回参量。然后将坐标区传递给 exportgraphics 函数。
显示一个热图。然后将该图保存为只包含具有透明背景的矢量图的 PDF。
h = heatmap(rand(10,10)); exportgraphics(h,'Hmap.pdf','BackgroundColor','none','ContentType','vector')

创建一个名为 saveapp.m 的程序文件,它显示一个绘图和一个用于保存坐标区内容的按钮。在该按钮的回调函数中,调用 uiputfile 函数来提示用户输入文件名和位置。然后调用 exportgraphics 函数并在其中包含指定文件的完整路径。
function saveapp f = uifigure; ax = uiaxes(f,"Position",[25 25 400 375]); plot(ax,[0 0.3 0.1 0.6 0.4 1]) b = uibutton(f,"Position",[435 200 90 30],"Text","Save Plot"); b.ButtonPushedFcn = @buttoncallback; function buttoncallback(~,~) filter = {"*.jpg";"*.png";"*.tif";"*.pdf";"*.eps"}; [filename,filepath] = uiputfile(filter); if ischar(filename) exportgraphics(ax,[filepath filename]); end end end
通过调用 saveapp 函数来运行该 App。当您点击 App 中的 Save Plot 按钮时,会出现一个对话框,提示您输入文件名和位置。然后,坐标区的内容将保存到指定的文件中。坐标区周围的区域(包括按钮)不包括在该文件中。
saveapp

输入参数
图形对象,指定为以下对象之一:
任何类型的坐标区:
Axes、PolarAxes或GeographicAxes对象。独立可视化,如
heatmap图。使用
tiledlayout函数创建的分块图布局。图窗中的容器:
Panel、Tab或ButtonGroup对象。如果指定的容器包含子容器,MATLAB® 在某些情况下会生成错误。有关详细信息,请参阅不支持相邻的容器。 (自 R2025a 起)
文件名,指定为包含文件扩展名的字符向量或字符串标量。如果 filename 不包含完整路径,MATLAB 会将文件保存在当前文件夹中。您必须具有文件的写入权限。
下表列出了支持的文件格式和文件扩展名(不区分大小写)。
| 文件格式 | 文件扩展名 |
|---|---|
联合图像专家组 (JPEG) | "jpg" 或 "jpeg" |
可移植网络图形 (PNG) | "png" |
标记图像文件格式 (TIFF) | "tif" 或 "tiff" |
图形交换格式 (GIF) | "gif" |
可缩放矢量图 (SVG) (自 R2025a 起) | "svg" |
可移植文档格式 (PDF) 当 | "pdf" |
仅适用于 Windows® 系统的增强型图元文件 (EMF) | "emf" |
封装的 PostScript® (EPS) | "eps" |
示例: exportgraphics(gca,"myfile.jpg") 将当前坐标区的内容保存到名为 myfile.jpg 的 JPEG 文件。
名称-值参数
以 Name1=Value1,...,NameN=ValueN 的形式指定可选参量对组,其中 Name 是参量名称,Value 是对应的值。名称-值参量必须出现在其他参量之后,但对各个参量对组的顺序没有要求。
在 R2021a 之前,使用逗号分隔每个名称和值,并用引号将 Name 引起来。
示例: exportgraphics(gca,"myplot.jpg","Resolution",300) 将当前坐标区的内容保存到 300-DPI 图像文件。
保存为 EMF、EPS 或 PDF 文件时要存储的内容的类型。将该值指定为以下选项之一:
"auto"- MATLAB 控制内容是矢量图还是图像。"vector"- 将内容存储为可缩放到任何大小的矢量图。如果您保存的是 PDF 文件,则可嵌入字体会包括在该文件中。"image"- 将内容存储到该文件内的一个或多个图像中。
注意
JPEG、TIFF、PNG 和 GIF 文件不支持
"vector"选项。如果指定
"vector"选项,某些可视化效果可能会包含杂散线条或其他伪影。
分辨率,单位为每英寸点数 (DPI),指定为大于或等于 1 的整数。
当 ContentType 是 "vector" 时,指定分辨率不起作用。
数据类型: single | double | int8 | int16 | int32 | int64 | uint8 | uint16 | uint32 | uint64
背景颜色,指定为 "current"、"none"、RGB 三元组、十六进制颜色代码或颜色名称。背景颜色控制坐标区或图周围边距的颜色。
值
"current"根据父容器的颜色设置背景颜色。如果通过设置属性显式设置父容器的颜色(例如使用figure(Color="red")创建红色图窗),则导出的文件将使用该颜色。如果未设置父容器的颜色,则导出的文件的背景颜色取决于主题。浅色主题下背景为白色。深色主题下背景为深灰(接近黑色)。 (自 R2025a 起)
"none"值根据ContentType的值将背景颜色设置为透明、白色或深灰(接近黑色):如果
ContentType="vector",背景颜色为透明。如果
ContentType="image",浅色主题的图窗的背景颜色为白色,深色主题的图窗的背景颜色为深灰色(近乎黑色)。如果
ContentType="auto",MATLAB 根据它用于确定要导出的内容类型的启发式方法设置背景颜色。
或者,指定自定义颜色或指定的颜色。
自定义颜色和指定的颜色
RGB 三元组和十六进制颜色代码对于指定自定义颜色非常有用。
RGB 三元组是包含三个元素的行向量,其元素分别指定颜色中红、绿、蓝分量的强度。强度值必须位于
[0,1]范围内,例如[0.4 0.6 0.7]。十六进制颜色代码是字符向量或字符串标量,以井号 (
#) 开头,后跟三个或六个十六进制数字,范围可以是0到F。这些值不区分大小写。因此,颜色代码"#FF8800"与"#ff8800"、"#F80"与"#f80"是等效的。
此外,还可以按名称指定一些常见的颜色。下表列出了命名颜色选项、等效 RGB 三元组和十六进制颜色代码。
| 颜色名称 | 短名称 | RGB 三元组 | 十六进制颜色代码 | 外观 |
|---|---|---|---|---|
"red" | "r" | [1 0 0] | "#FF0000" |
|
"green" | "g" | [0 1 0] | "#00FF00" |
|
"blue" | "b" | [0 0 1] | "#0000FF" |
|
"cyan" | "c" | [0 1 1] | "#00FFFF" |
|
"magenta" | "m" | [1 0 1] | "#FF00FF" |
|
"yellow" | "y" | [1 1 0] | "#FFFF00" |
|
"black" | "k" | [0 0 0] | "#000000" |
|
"white" | "w" | [1 1 1] | "#FFFFFF" |
|
下表列出了浅色和深色主题中绘图的默认调色板。
| 调色板 | 调色板颜色 |
|---|---|
在 R2025a 之前的版本中: 大多数绘图默认使用这些颜色。 |
|
|
|
您可以使用 orderedcolors 和 rgb2hex 函数获取这些调色板的 RGB 三元组和十六进制颜色代码。例如,获取 "gem" 调色板的 RGB 三元组并将其转换为十六进制颜色代码。
RGB = orderedcolors("gem");
H = rgb2hex(RGB);在 R2023b 之前的版本中: 使用 RGB = get(groot,"FactoryAxesColorOrder") 获取 RGB 三元组。
在 R2024a 之前的版本中: 使用 H = compose("#%02X%02X%02X",round(RGB*255)) 获取十六进制颜色代码。
将内容追加到现有文件,指定为 true 或 false。
此选项适用于:
将内容导出为现有 PDF 文件的最后一页。多次调用带
Append选项的exportgraphics以添加多个页。将内容导出为动画 GIF 文件中的最后一帧。多次调用带
Append选项的exportgraphics以添加多个帧。
注意
您可以使用 Append 参量从具有相同坐标区范围的图中创建基本动画 GIF 文件。如果各图之间的坐标区范围不同,请考虑在创建图时使用 axis("manual") 或 xlim、ylim 或 zlim 函数来冻结坐标区范围。
如果使用现有文件的名称的同时将 Append 选项设置为 false,则 MATLAB 会用新内容覆盖文件内容。
此选项仅支持 PDF 和 GIF 文件。
已保存图形的颜色空间,指定为 "rgb"、"gray" 或 "cmyk"。
"rgb"- 导出真彩色 RGB 内容。"gray"- 将内容转换为灰度。"cmyk"- 将内容转换为青色、品红色、黄色和黑色 (CMYK)。仅此颜色空间支持 EPS 文件。
自 R2025a 起
保存的图形的宽度,指定为 "auto" 或正数。要指定自定义宽度,请指定数字。默认情况下,图像文件的单位是像素,矢量图文件的单位是磅。您可以使用 Units 名称-值参量来指定不同单位。所有宽度值都包括图形周围的任何填充。默认情况下,保存的图形包含很窄的填充边距,但您可以通过指定 Padding 名称-值参量来更改它。
当 Width 值为 "auto" 时,会根据 Height 值选择保持纵横比的宽度。
注意
保存图像文件时,默认 Width ("auto") 取决于 Resolution 名称-值参量,默认情况下为 150。要使用默认宽度并更好地匹配屏幕上的显示大小,请将 Resolution 名称-值参量指定为 get(groot,"ScreenPixelsPerInch") 返回的值。例如:
sppi = get(groot,"ScreenPixelsPerInch"); exportgraphics(gca,"myplot.png","Resolution",sppi)
自 R2025a 起
保存的图形的高度,指定为 "auto" 或正数。要指定自定义高度,请指定数字。默认情况下,图像文件的单位是像素,矢量图文件的单位是磅。您可以使用 Units 名称-值参量来指定不同单位。所有高度值都包括图形周围的任何填充。默认情况下,保存的图形包含很窄的填充边距,但您可以通过指定 Padding 名称-值参量来更改它。
当 Height 值为 "auto" 时,会根据 Width 值选择保持纵横比的高度。
注意
保存图像文件时,默认 Height ("auto") 取决于 Resolution 名称-值参量,默认情况下为 150。要使用默认高度并更好地匹配屏幕上的显示大小,请将 Resolution 名称-值参量指定为 get(groot,"ScreenPixelsPerInch") 返回的值。例如:
sppi = get(groot,"ScreenPixelsPerInch"); exportgraphics(gca,"myplot.png","Resolution",sppi)
自 R2025a 起
保存的图形周围的填充,指定为下表中的值之一。
| 值 | 描述 | 示例 |
|---|---|---|
| 包括足够的填充以包含 x 和 y 轴标签、标题和装饰元素,如图例和颜色栏。 | 创建一个条形图,并将其导出为具有 图像周围的灰色边框勾勒出捕获区域的轮廓。边框不是已保存图像的一部分。
bar(1:5) title("My Bar Chart") ax = gca; exportgraphics(ax,"tightpadding.png")
|
| 包括与图窗窗口中所示相同的相对填充量。 | 创建一个条形图,并将其导出为具有 图像周围的灰色边框勾勒出捕获区域的轮廓。
bar(1:5) title("My Bar Chart") ax = gca; exportgraphics(ax,"figurepadding.png","Padding","figure")
|
正数 | 包括指定的填充量。默认情况下,图像文件的单位是像素,矢量图文件的单位是磅。您可以使用 | 创建一个条形图,并将其导出为填充 100 像素的图像。 图像周围的灰色边框勾勒出捕获区域的轮廓。
bar(1:5) title("My Bar Chart") ax = gca; exportgraphics(ax,"100pixelpadding.png","Padding",100)
|
自 R2025a 起
Width、Height 和 Padding 值的单位,指定为 "auto"、"pixels"(仅适用于图像)、"inches"、"centimeters" 或 "points"(其中 1 磅 = 1/72 英寸)。
默认值 "auto" 将图像文件的单位设置为 "pixels",而将矢量图文件的单位设置为 "points"。
自 R2025a 起
保留原始纵横比,指定为 "auto"、"on" 或 "off"。
值 "auto" 使 exportgraphics 能够选择 "on" 或 "off",具体取决于您是否指定 Width 和 Height 名称-值参量以及组合是否会更改纵横比。如果您指定 Width 或 Height 名称-值参量(但不是同时指定两者),则 exportgraphics 会保留原始纵横比。如果您为两个维度都指定了值,并且这些值会更改纵横比,则该函数不会保留原始纵横比。
下表总结了 "on" 和 "off" 值的行为。
| 值 | 描述 | 示例 |
|---|---|---|
| 保留原始图形的纵横比。
| 创建一个条形图。然后将该图另存为图像。仅指定 图像周围的灰色边框勾勒出捕获区域的轮廓。边框不是已保存图像的一部分。
bar(1:5) ax = gca; exportgraphics(ax,"scaledchart.png",Width=250, ... PreserveAspectRatio="on")
将图另存为具有
exportgraphics(ax,"paddedchart.png",Width=250,... Height=350,PreserveAspectRatio="on")
|
| 不保留原始纵横比。如果 | 创建一个条形图。然后将该图另存为具有 该图像显示图的拉伸版本。图像周围的灰色边框勾勒出捕获区域的轮廓。
bar(1:5) ax = gca; exportgraphics(ax,"stretched-chart.png",Width=250,... Height=350,PreserveAspectRatio="off")
|
替代功能
使用图窗工具条 (自 R2025a 起)
在图窗选项卡中,点击另存为按钮的下半部分,然后选择导出为菜单项。有关详细信息,请参阅从图窗工具条打印或导出图窗。
使用坐标区工具栏
将鼠标置于坐标区工具栏中的导出按钮
上以显示下拉菜单,其中包含用于导出内容的选项:
:将内容保存为一个精确裁剪的图像或 PDF。
:将内容复制为图像。
:将内容复制为矢量图。
版本历史记录
在 R2020a 中推出通过在文件名中指定 ".svg" 文件扩展名将图导出为 SVG 文件。
使用以下名称-值参量指定宽度、高度、填充以及是否保留原始图形的纵横比:
Width和Height- 指定输出的宽度和高度。Padding- 指定图形周围的填充量。Units- 指定宽度、高度和填充值的单位。PreserveAspectRatio- 指定如果Width和Height值与图形的原始纵横比发生冲突,是否自动添加填充以保留原始纵横比。
如果将容器(如图窗或面板)传递给 exportgraphics 函数,且该容器有子容器,则某些情况下该函数会返回错误:
存在多个子容器,且至少一个子容器包含坐标区对象或独立可视化对象
父容器的子级为坐标区对象(或独立可视化对象),且这些子级在图形层次结构中与同级容器相邻
要捕获子容器的内容,请将该容器传递给 exportgraphics 函数。要捕获图窗的全部内容,请使用 exportapp 函数。
在 MATLAB Online™ 中,您可以使用 Width、Height、Padding、Units 和 PreserveAspectRatio 名称-值参量指定宽度、高度、填充以及是否保留原始图形的纵横比。
通过多次调用 Append 名称-值参量设置为 true 的 exportgraphics,创建动画 GIF 文件。
MATLAB Command
You clicked a link that corresponds to this MATLAB command:
Run the command by entering it in the MATLAB Command Window. Web browsers do not support MATLAB commands.
选择网站
选择网站以获取翻译的可用内容,以及查看当地活动和优惠。根据您的位置,我们建议您选择:。
您也可以从以下列表中选择网站:
如何获得最佳网站性能
选择中国网站(中文或英文)以获得最佳网站性能。其他 MathWorks 国家/地区网站并未针对您所在位置的访问进行优化。
美洲
- América Latina (Español)
- Canada (English)
- United States (English)
欧洲
- Belgium (English)
- Denmark (English)
- Deutschland (Deutsch)
- España (Español)
- Finland (English)
- France (Français)
- Ireland (English)
- Italia (Italiano)
- Luxembourg (English)
- Netherlands (English)
- Norway (English)
- Österreich (Deutsch)
- Portugal (English)
- Sweden (English)
- Switzerland
- United Kingdom (English)















