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

如图所示:

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值