![ef0b8948aa5ffb6cc1b0207e19f915d5.png](https://i-blog.csdnimg.cn/blog_migrate/f3477dcdcf1ed6852cecdfd48d438ac3.jpeg)
关于如何用Matlab导出论文插图,其实在之前的两篇文章里已经说过很多了(Matlab自动导出高质量、无变形论文插图辅助工具;Matlab自动导出论文插图)。
但有趣的是,当我介绍用print函数输出图片时,评论区说还是export_fig好;
而当我介绍export_fig时,又道“print它不香吗” ……
想了想,索性把常见的几种导出插图的方法在这里统一整理一下,以后就不再投入时间精力了。
(生成插图所用脚本文件见文末)
整体性能:
![6485e972d349d7d2299fc30513c521a5.png](https://i-blog.csdnimg.cn/blog_migrate/ede5150d8fe31b47ab2025d86bf23e04.jpeg)
预设:
对象属性—文字大小、线型等均已提前设置好;
图窗尺寸—长12cm,高9cm;
输出格式—PNG/JPG/TIF(论文投稿提交图片常用格式);
![5eedbb75ef4e966dd5ed4bafdf64cb2a.png](https://i-blog.csdnimg.cn/blog_migrate/faa850295139c3827b5dd3f1d6c16858.jpeg)
方法一:file->save as...
这一方法的操作方式很简单。
在Figure图窗中,点击‘File’->‘Save As...’,然后选择要保存的格式即可。
![40822e09f0113f81f28d107a6e3a8f51.png](https://i-blog.csdnimg.cn/blog_migrate/e75dceeb5a64053cd85807eb6370d801.png)
保存图片的属性如下:
![22d7a338765effef4d59ba2f4d4060c6.png](https://i-blog.csdnimg.cn/blog_migrate/39914137c0fef9c0966bfebbf4703f87.jpeg)
可以看出,尺寸是没有问题的,但分辨率基本上就是默认的分辨率,清晰度会差一些。
方法二:saveas函数
使用方法:
saveas(fig,filename)
saveas(fig,filename,formattype)
示例:
saveas(gcf,‘test.png’); % 以png格式、文件名test输出当前图窗对象
所得图片属性如下:
![7425668bebb6ad58330f700705ab4c90.png](https://i-blog.csdnimg.cn/blog_migrate/dbbaa3c627c733a847102c9671a5a3b5.png)
与方法一相比,分辨率有所提升。
方法三:Export Setup
在‘Figure’窗口中,单击‘File’->‘Export Setup…’,
![b3bc6dd0a3d1ca159a412c3b52b5af1a.png](https://i-blog.csdnimg.cn/blog_migrate/7a53ea814b099320978a8df15a179941.jpeg)
在弹出的‘Export Setup: Figure’窗口,分别调整图片尺寸:
![d8350b973b910f84b83f07d4e7e70f30.png](https://i-blog.csdnimg.cn/blog_migrate/1b8f72151c10c20f166c59cfdc030e13.jpeg)
分辨率:
![e8b31828009c5350d8dc951383b7ba19.png](https://i-blog.csdnimg.cn/blog_migrate/7db0c0b4166f52e0cc34866c04a10268.jpeg)
保存设置后,选择‘File’->‘Save As...’,按自己所需格式保存。
这一方法算是方法一的升级版,其所得图片属性如下:
![92e29edcd0c4c4e29f23a721f4e4d529.png](https://i-blog.csdnimg.cn/blog_migrate/ca3cde094a9e2c2aaf7e58630d8470b0.png)
可以看出,图像尺寸与分辨率均为设置值。
方法四:copy figure
在Figure图窗中点击‘Edit’->‘Copy Figure’,
![9ece00dcf8802266d4b7475f71e2aaf3.png](https://i-blog.csdnimg.cn/blog_migrate/d5ce020926ce46cde4be0df29eb5a4ec.jpeg)
这样图像便已复制到剪贴板上了,然后到word里粘贴即可。
![b38483b226496c3b17f852f5d4d9e47d.png](https://i-blog.csdnimg.cn/blog_migrate/f1e83d9e8b0cee78ceaf421f42355f6f.jpeg)
可以看出,至少尺寸是没问题的。这是因为在复制前,我把预设改了一下:
单击‘Edit’->‘Copy Options…’,在弹出的窗口中选择‘Match figure screen size’,
![6538d8eb941af50be99204bd1af40828.png](https://i-blog.csdnimg.cn/blog_migrate/67a46495fc76bd3f431c960467683ac4.jpeg)
由于已经提前设置好了图窗尺寸,且图窗尺寸等于屏幕显示尺寸(见:Matlab、Visio导出精美论文插图——位置与尺寸设置),所以尺寸是对的。
输出图像的属性与方法一完全一致。
值得一提的是,这里格式选的是‘Bitmap’,若选择‘Preserve information (metafile if possible)’,则输出的是矢量图,可以复制到Adobe Illustrator继续进行编辑:
![746866c9f8b957c10c6dc2752d8de618.png](https://i-blog.csdnimg.cn/blog_migrate/014df9a3ed4e4f7241142aa6c163c59c.jpeg)
方法五:print
使用方法:
print(gcf, 'test.png','-r300','-dpng');
所得图像与方法三所得可以说完全一致,但这一方法可以用于批量导出多张图片。
详细代码及用法见文末链接。
方法六:export_fig
export_fig是由Yair Altman提供的一款用于将图形从Matlab导出为标准图像和文档格式的工具箱,可以完美解决锯齿、变形问题。
具体获取与安装方式见:
Matlab自动导出高质量无变形论文插图mp.weixin.qq.com![c6027e0ae72dc27b1deea2c90bc187e9.png](https://i-blog.csdnimg.cn/blog_migrate/382de661d0a8303156652a95b8b7c478.png)
使用方法:
export_fig test.png –r300
所得图像属性:
![56c2817bc3141157c544de79751135ca.png](https://i-blog.csdnimg.cn/blog_migrate/dcb25befe2bb8d8f1b10a0805f0c16ee.png)
由于默认消除了白边,所以图像的宽度和高度均有所减小,但绘图区域整体的大小其实并没有改变,所以并不影响使用。
假如不想消除白边,则命令需改为:
export_fig test.png –r300 –nocrop
方法七:exportgraphics
这一方法是在新版的MATLAB2020a中新增的函数。
使用方法:
exportgraphics(obj,filename)
exportgraphics(obj,filename,Name,Value)
具体使用方法见:
心同流水:使用MATLAB科研绘图zhuanlan.zhihu.com--------------------------------------
最后,把前六种方法所得图像的legend单独截出来,与原图进行对比:
![1cf73e402b8c8ba7d43202f3fb765526.png](https://i-blog.csdnimg.cn/blog_migrate/47999f265187a9fedf7168c4931aa667.jpeg)
可以看出:
- 方法一和方法四的虚线与原图是完全一致的,可惜无法调节分辨率;
- 方法二、三、五的效果是一致,与原图稍有出入;
- 而用export_fig输出的图像(方法六)算是自成一派吧,多少还是有些不一样的,但也可以接受。
-----------------------
作图所用代码获取方式:
figure_exportmp.weixin.qq.com以上。