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)
导出图窗
显示一个具有超出坐标区边界的注释的绘图。将图窗的内容保存为 PDF 文件。
plot(1:10) annotation('textarrow',[0.06 0.5],[0.73 0.5],'String','y = x ') f = gcf; exportgraphics(f,'AnnotatedPlot.pdf')
导出为仅包含向量图的 PDF
显示一个条形图并获取当前坐标区。然后将坐标区的内容保存为仅包含向量图的 PDF。
bar([10 22 31 43]) ax = gca; exportgraphics(ax,'BarChart.pdf','ContentType','vector')
导出多页 PDF
要创建多页 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)
导出动画 GIF
绘制一条带一个标记的抛物线。在 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
显示一个热图。然后将该图保存为只包含具有透明背景的向量图的 PDF。
h = heatmap(rand(10,10)); exportgraphics(h,'Hmap.pdf','BackgroundColor','none','ContentType','vector')
创建用于保存绘图的 App
创建一个名为 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
输入参数
obj
— 图形对象
坐标区 | 图窗 | 独立可视化 | 分块图布局 | ...
图形对象,指定为以下对象之一:
任何类型的坐标区:
Axes
、PolarAxes
或GeographicAxes
对象。独立可视化,如
heatmap
图。使用
tiledlayout
函数创建的分块图布局。图窗中的容器:
Panel
、Tab
或ButtonGroup
对象。
捕获区域
exportgraphics
捕获您指定的对象的内容。它不捕获 UI 组件,如按钮或滑块。
它也不捕获相邻的容器或子容器。例如,假设有一个包含线图的图窗以及一个包含热图的相邻面板:
f = figure; ax = axes(f,'Position',[0.1 0.1 0.4 0.8]); plot(ax,[0 1]) p = uipanel(f,'Position',[0.55 0.1 0.4 0.8]); heatmap(p,rand(10,5)) exportgraphics(f,'myfigure.png') exportgraphics(p,'mypanel.png')
当您运行上述代码时,myfigure.png
包含线图,但不包含热图。同样,mypanel.png
包含热图,但不包含线图。
filename
— 文件名
字符向量 | 字符串标量
文件名,指定为包含文件扩展名的字符向量或字符串标量。如果 filename
不包含完整路径,MATLAB® 会将文件保存在当前文件夹中。您必须具有文件的写入权限。
下表列出了支持的文件格式和文件扩展名(不区分大小写)。
文件格式 | 文件扩展名 |
---|---|
联合图像专家组 (JPEG) | 'jpg' 或 'jpeg' |
可移植网络图形 (PNG) | 'png' |
标记图像文件格式 (TIFF) | 'tif' 或 'tiff' |
图形交换格式 (GIF) | 'gif' |
可移植文档格式 (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 图像文件。
ContentType
— 内容的类型
'auto'
(默认) | 'vector'
| 'image'
保存为 EMF、EPS 或 PDF 文件时要存储的内容的类型。将该值指定为以下选项之一:
'auto'
- MATLAB 控制内容是向量图还是图像。'vector'
- 将内容存储为可缩放到任何大小的向量图。如果您保存的是 PDF 文件,则可嵌入字体会包括在该文件中。'image'
- 将内容光栅化到该文件内的一个或多个图像中。
注意
JPEG、TIFF 和 PNG 文件不支持
'vector'
选项。如果指定
'vector'
选项,某些可视化效果可能会包含杂散线条或其他伪影。
Resolution
— 分辨率 (DPI)
150
(默认) | 整数
分辨率,单位为每英寸点数 (DPI),指定为大于或等于 1
的整数。
当 ContentType
是 'vector'
时,指定分辨率不起作用。
数据类型: single
| double
| int8
| int16
| int32
| int64
| uint8
| uint16
| uint32
| uint64
BackgroundColor
— 背景色
[1 1 1]
(默认) | 'current'
| 'none'
| RGB 三元组 | 'r'
| 'g'
| 'b'
| ...
背景颜色,指定为 'current'
、'none'
、RGB 三元组、十六进制颜色代码或颜色名称。背景颜色控制坐标区或图周围边距的颜色。
值
'current'
将背景颜色设置为父容器的颜色。值
'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" |
以下是 MATLAB 在许多类型的绘图中使用的默认颜色的 RGB 三元组和十六进制颜色代码。
RGB 三元组 | 十六进制颜色代码 | 外观 |
---|---|---|
[0 0.4470 0.7410] | "#0072BD" | |
[0.8500 0.3250 0.0980] | "#D95319" | |
[0.9290 0.6940 0.1250] | "#EDB120" | |
[0.4940 0.1840 0.5560] | "#7E2F8E" | |
[0.4660 0.6740 0.1880] | "#77AC30" | |
[0.3010 0.7450 0.9330] | "#4DBEEE" | |
[0.6350 0.0780 0.1840] | "#A2142F" |
Append
— 将内容追加到现有文件
false
(默认) | true
将内容追加到现有文件,指定为 true
或 false
。
此选项适用于:
将内容导出为现有 PDF 文件的最后一页。多次调用带
Append
选项的exportgraphics
以添加多个页。将内容导出为动画 GIF 文件中的最后一帧。多次调用带
Append
选项的exportgraphics
以添加多个帧。
注意
您可以使用 Append
参数从具有相同坐标区范围的图中创建基本动画 GIF 文件。如果各图之间的坐标区范围不同,请考虑在创建图时使用 axis('manual')
或 xlim
、ylim
或 zlim
函数来冻结坐标区范围。
如果使用现有文件的名称的同时将 Append
选项设置为 false
,则 MATLAB 会用新内容覆盖文件内容。
此选项仅支持 PDF 和 GIF 文件。
Colorspace
— 颜色空间
'rgb'
(默认) | 'gray'
| 'cmyk'
已保存图形的颜色空间,指定为 'rgb'
、'gray'
或 'cmyk'
。
'rgb'
- 导出真彩色 RGB 内容。'gray'
- 将内容转换为灰度。'cmyk'
- 在将内容导出之前,将内容转换为青色、品红色、黄色和黑色 (CMYK)。仅此颜色空间支持 EPS 文件。
替代功能
将鼠标悬停在坐标区工具栏中的导出按钮 上会显示下拉菜单,其中包含用于导出内容的选项:
:将内容保存为一个精确裁剪的图像或 PDF。
:将内容复制为图像。
:将内容复制为向量图。
版本历史记录
在 R2020a 中推出R2022a: 创建动画 GIF 文件
通过多次调用 Append
名称-值参数设置为 true
的 exportgraphics
,创建动画 GIF 文件。
另请参阅
MATLAB 命令
您点击的链接对应于以下 MATLAB 命令:
请在 MATLAB 命令行窗口中直接输入以执行命令。Web 浏览器不支持 MATLAB 命令。
Select a Web Site
Choose a web site to get translated content where available and see local events and offers. Based on your location, we recommend that you select: .
You can also select a web site from the following list:
How to Get Best Site Performance
Select the China site (in Chinese or English) for best site performance. Other MathWorks country sites are not optimized for visits from your location.
Americas
- América Latina (Español)
- Canada (English)
- United States (English)
Europe
- 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)