ef0b8948aa5ffb6cc1b0207e19f915d5.png

关于如何用Matlab导出论文插图,其实在之前的两篇文章里已经说过很多了(Matlab自动导出高质量、无变形论文插图辅助工具;Matlab自动导出论文插图)。

但有趣的是,当我介绍用print函数输出图片时,评论区说还是export_fig好;

而当我介绍export_fig时,又道“print它不香吗” ……

想了想,索性把常见的几种导出插图的方法在这里统一整理一下,以后就不再投入时间精力了。

(生成插图所用脚本文件见文末)


整体性能:

6485e972d349d7d2299fc30513c521a5.png

预设:

对象属性—文字大小、线型等均已提前设置好;

图窗尺寸—长12cm,高9cm;

输出格式—PNG/JPG/TIF(论文投稿提交图片常用格式);

5eedbb75ef4e966dd5ed4bafdf64cb2a.png

方法一:file->save as...

这一方法的操作方式很简单。

在Figure图窗中,点击‘File’->‘Save As...’,然后选择要保存的格式即可。

40822e09f0113f81f28d107a6e3a8f51.png

保存图片的属性如下:

22d7a338765effef4d59ba2f4d4060c6.png

可以看出,尺寸是没有问题的,但分辨率基本上就是默认的分辨率,清晰度会差一些。

方法二:saveas函数

使用方法:

saveas(fig,filename)
saveas(fig,filename,formattype)

示例:

saveas(gcf,‘test.png’); % 以png格式、文件名test输出当前图窗对象

所得图片属性如下:

7425668bebb6ad58330f700705ab4c90.png

与方法一相比,分辨率有所提升。

方法三:Export Setup

在‘Figure’窗口中,单击‘File’->‘Export Setup…’,

b3bc6dd0a3d1ca159a412c3b52b5af1a.png

在弹出的‘Export Setup: Figure’窗口,分别调整图片尺寸

d8350b973b910f84b83f07d4e7e70f30.png

分辨率

e8b31828009c5350d8dc951383b7ba19.png

保存设置后,选择‘File’->‘Save As...’,按自己所需格式保存。

这一方法算是方法一的升级版,其所得图片属性如下:

92e29edcd0c4c4e29f23a721f4e4d529.png

可以看出,图像尺寸与分辨率均为设置值。

方法四:copy figure

在Figure图窗中点击‘Edit’->‘Copy Figure’,

9ece00dcf8802266d4b7475f71e2aaf3.png

这样图像便已复制到剪贴板上了,然后到word里粘贴即可。

b38483b226496c3b17f852f5d4d9e47d.png

可以看出,至少尺寸是没问题的。这是因为在复制前,我把预设改了一下:

单击‘Edit’->‘Copy Options…’,在弹出的窗口中选择‘Match figure screen size’,

6538d8eb941af50be99204bd1af40828.png

由于已经提前设置好了图窗尺寸,且图窗尺寸等于屏幕显示尺寸(见:Matlab、Visio导出精美论文插图——位置与尺寸设置),所以尺寸是对的。

输出图像的属性与方法一完全一致。

值得一提的是,这里格式选的是‘Bitmap’,若选择‘Preserve information (metafile if possible)’,则输出的是矢量图,可以复制到Adobe Illustrator继续进行编辑:

746866c9f8b957c10c6dc2752d8de618.png

方法五:print

使用方法:

print(gcf, 'test.png','-r300','-dpng');

所得图像与方法三所得可以说完全一致,但这一方法可以用于批量导出多张图片。

详细代码及用法见文末链接。

方法六:export_fig

export_fig是由Yair Altman提供的一款用于将图形从Matlab导出为标准图像和文档格式的工具箱,可以完美解决锯齿、变形问题。

具体获取与安装方式见:

Matlab自动导出高质量无变形论文插图​mp.weixin.qq.com
c6027e0ae72dc27b1deea2c90bc187e9.png

使用方法:

export_fig test.png –r300

所得图像属性:

56c2817bc3141157c544de79751135ca.png

由于默认消除了白边,所以图像的宽度和高度均有所减小,但绘图区域整体的大小其实并没有改变,所以并不影响使用。

假如不想消除白边,则命令需改为:

export_fig test.png –r300 –nocrop

方法七:exportgraphics

这一方法是在新版的MATLAB2020a中新增的函数。

使用方法:

exportgraphics(obj,filename)
exportgraphics(obj,filename,Name,Value)

具体使用方法见:

心同流水:使用MATLAB科研绘图​zhuanlan.zhihu.com

--------------------------------------

最后,把前六种方法所得图像的legend单独截出来,与原图进行对比:

1cf73e402b8c8ba7d43202f3fb765526.png

可以看出:

  • 方法一和方法四的虚线与原图是完全一致的,可惜无法调节分辨率;
  • 方法二、三、五的效果是一致,与原图稍有出入;
  • 而用export_fig输出的图像(方法六)算是自成一派吧,多少还是有些不一样的,但也可以接受。

-----------------------

作图所用代码获取方式:

figure_export​mp.weixin.qq.com

以上。

Logo

开放原子开发者工作坊旨在鼓励更多人参与开源活动,与志同道合的开发者们相互交流开发经验、分享开发心得、获取前沿技术趋势。工作坊有多种形式的开发者活动,如meetup、训练营等,主打技术交流,干货满满,真诚地邀请各位开发者共同参与!

更多推荐