MATLAB中exportgraphics函数用法
目录
语法
说明
示例
将坐标区导出为图像文件
指定图像分辨率
导出图窗
导出为仅包含向量图的 PDF
导出多页 PDF
导出动画 GIF
导出分块图布局
将热图导出为具有透明背景的 PDF
创建用于保存绘图的 App
exportgraphics函数的功能是将绘图或图形内容保存到文件。
语法
exportgraphics(obj,filename)
exportgraphics(obj,filename,Name,Value)
说明
exportgraphics(obj,filename) 将 obj 指定的图形对象的内容保存到文件中。图形对象可以是任何类型的坐标区、图窗、独立可视化、分块图布局或图窗内的容器。生成的图形经过紧密裁剪,内容周围只留很窄的边距。
exportgraphics(obj,filename,Name,Value) 指定保存文件的其他选项。例如,exportgraphics(gca,"myplot.jpg","Resolution",300) 将当前坐标区的内容保存为 300-DPI 图像文件。
示例
将坐标区导出为图像文件
创建一个线图并获取当前坐标区。然后将坐标区的内容保存为 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
如图所示: