爱气象,爱气象家园! 

气象家园

 找回密码
 立即注册

QQ登录

只需一步,快速开始

新浪微博登陆

只需一步, 快速开始

搜索
查看: 14019|回复: 12

[讨论] [Matlab]Export_fig安装eps和pdf插件

[复制链接]

新浪微博达人勋

发表于 2018-3-16 21:23:11 | 显示全部楼层 |阅读模式

登录后查看更多精彩内容~

您需要 登录 才可以下载或查看,没有帐号?立即注册 新浪微博登陆

x
本帖最后由 Aiiky 于 2018-3-16 21:23 编辑

最近很多人在向我推荐一款Matlab出图的插件,export_fig。听说这个插件可以自动裁边,显示的图像更加细腻清晰,我于是尝试了下。
插件可以在Matlab fileexchange上下载:
https://cn.mathworks.com/matlabcentral/fileexchange/23629-export-fig

github上有更加详细的说明:
https://github.com/altmany/export_fig

之前在用Matlab的print函数输出png图像的时候,我就注意到matlab弹窗图像和最终png格式的图之间存在差异,表现在虚线和legend失真,所见非所得。这个问题我一直没有得到解决,有通过print先保存eps/pdf,然后再保存为png的解决方案,不过这样很麻烦。
Export_fig可以解决这个问题,可以用如下命令实现:
以前:   print(         gcf , '-dpng' , '-r300' ,                  fig_name );  % 虚线和legend等会失真
现在: export_fig( gcf , '-png'   , '-r300' , ‘-painters’ , fig_name );  % 加上了 '-painters' 可以保证不失真

接下来说一说export_fig输出eps和pdf格式的图片。
我一直用的Centos7 (Linux一个发行版) 下安装的Matlab 2016a,将在Matlab fileexchange中下载的export_fig插件加入路径以后,可以如上述png输出的方式一样,修改为'-eps','-pdf'出图,没有报错。
但是Win下的Matlab如果想要使用export_fig出eps和pdf需要再安装插件,Ghostscript 或者 pdftops。
前者(ghostscripts)下地地址:
https://www.ghostscript.com/download/gsdnld.html
对于64的系统,选择win64即可。
后者(Xpdf-tools)下载地址:
http://www.xpdfreader.com/download.html
注意前者需要进一步安装,注意记住安装位置,特别是/bin文件夹的位置。
后者不需要安装,解压缩即可,同样注意解压缩位置。

两者似乎只需要安装一个即可完成eps或者pdf的出图,我当时两个都安装了,后来又试验了下,似乎只安装Xpdf-tools就足够。下面以Xpdf-tools的安装为例。如果想把ghostscrips也安装上的,参考Xpdf-tool即可。

现在的准备工作已经做完,我们需要让export_fig知道Xpdf-tools的bin文件夹路径。
先出一张图:
x = [-10:0.1:10];
y = sin(x);
plot(x,y);

这样画了一张图,
export_fig( gcf , '-pdf' , '-r300' , '-painters' , './Test.pdf');
然后Matlab会弹出一个对话框,如图所示,选择中间的locate pdftops,然后选定到Xpdf-tool的bin64文件夹,点击确定即可。这样我们就发现Test.pdf文件已经生成,同样可以再测试下eps安装情况:
export_fig( gcf , '-eps' , '-r300' , '-painters' , './Test.pdf');

这样就完成了WIn下Matlab的export_fig插件的完整安装。

参考链接:
https://github.com/altmany/export_fig






弹出的对话框

弹出的对话框

评分

参与人数 1金钱 +20 收起 理由
wangyanshuo + 20 很给力!

查看全部评分

密码修改失败请联系微信:mofangbao

新浪微博达人勋

发表于 2018-3-17 14:24:28 | 显示全部楼层
给forever green一个大赞!
密码修改失败请联系微信:mofangbao

新浪微博达人勋

发表于 2018-3-21 12:32:07 | 显示全部楼层
您好,按照上面说的,把背景设置成白的,然后和从编辑框里直接复制的对比,感觉不一样呢,环状圆圈的颜色不一样?为什么呢? QQ截图20180321122959.png
密码修改失败请联系微信:mofangbao

新浪微博达人勋

发表于 2018-3-23 17:34:36 | 显示全部楼层
大赞
密码修改失败请联系微信:mofangbao
回复

使用道具 举报

新浪微博达人勋

 楼主| 发表于 2018-3-24 11:28:16 | 显示全部楼层
marry_nuist 发表于 2018-3-21 12:32
您好,按照上面说的,把背景设置成白的,然后和从编辑框里直接复制的对比,感觉不一样呢,环状圆圈的颜色不 ...

上面的图是export_fig保存出来的结果,下面的是fig对话框截图结果么?我注意到export_fig会把图像的线条,特别是比较淡的线条变得清晰点,所以可能出来了圆圈外圈和轴线变黑的现象。

Image quality - when publishing images of your results, you want them to look as good as possible. By default, when outputting to lossy file formats (PDF, EPS and JPEG), export_fig uses a high quality setting, i.e. low compression, for images, so little information is lost. This is in contrast to MATLAB's print and saveas functions, whose default quality settings are poor. For example:

觉得颜色太深了,应该可以设置下外框和轴线的颜色为灰色。

密码修改失败请联系微信:mofangbao

新浪微博达人勋

 楼主| 发表于 2018-3-24 11:29:16 | 显示全部楼层

哈哈,希望对你有帮助~
密码修改失败请联系微信:mofangbao

新浪微博达人勋

 楼主| 发表于 2018-3-24 11:29:58 | 显示全部楼层
hengkai1993 发表于 2018-3-17 14:24
给forever green一个大赞!

额,有用就好~
密码修改失败请联系微信:mofangbao

新浪微博达人勋

发表于 2018-3-25 08:44:34 | 显示全部楼层
Aiiky 发表于 2018-3-24 11:28
上面的图是export_fig保存出来的结果,下面的是fig对话框截图结果么?我注意到export_fig会把图像的线条 ...

上面的图是fig对话框里copy出来的,下面的是export_fig保存出来的结果。export_fig方法会把线条颜色变得淡,看的不习惯了
密码修改失败请联系微信:mofangbao

新浪微博达人勋

 楼主| 发表于 2018-3-25 21:20:24 | 显示全部楼层
本帖最后由 Aiiky 于 2018-3-25 21:21 编辑
marry_nuist 发表于 2018-3-25 08:44
上面的图是fig对话框里copy出来的,下面的是export_fig保存出来的结果。export_fig方法会把线条颜色变得 ...

额,修改下线条粗细和颜色可以么
set( gca , 'linewidth' , 2 );
另外,你在保存时候加上 '-painters'了吧?应该是所见即所得
密码修改失败请联系微信:mofangbao

新浪微博达人勋

发表于 2018-3-26 09:18:02 | 显示全部楼层
Aiiky 发表于 2018-3-25 21:20
额,修改下线条粗细和颜色可以么
set( gca , 'linewidth' , 2 );
另外,你在保存时候加上 '-painters' ...

好的好的,只是觉得线条奇怪,不影响使用,谢谢指导
密码修改失败请联系微信:mofangbao
您需要登录后才可以回帖 登录 | 立即注册 新浪微博登陆

本版积分规则

Copyright ©2011-2014 bbs.06climate.com All Rights Reserved.  Powered by Discuz! (京ICP-10201084)

本站信息均由会员发表,不代表气象家园立场,禁止在本站发表与国家法律相抵触言论

快速回复 返回顶部 返回列表