来源
使用matlab完成绘图后,希望直接导出矢量图供写作,而不是PNG等位图。有些论文对图的数量还有限制,有时需要将多个图进行合并。虽然可以直接使用matlab,latex等进行合并,但感觉这两种方法比较麻烦。我更偏向于matlab导出矢量图,放到Visio进行合并和处理,在导出矢量图,使用latex进行写作(只支持eps和PDF格式矢量图)。
matlab导出矢量图
使用print
函数或者saveas
函数, 设置相应导出的矢量图格式,详见matlab参考文档。
print(Fig1, 'ChenFig1', '-dpng', '-r600')print(Fig1, 'ChenFig1', '-dpdf', '-r600')print(Fig1, 'ChenFig1', '-depsc', '-r600')print(Fig1, 'ChenFig1', '-dmeta', '-r600')print(Fig1, 'ChenFig1', '-dsvg', '-r600')print(Fig1, 'ChenFig1', '-dpsc', '-r600')
Visio导出PDF矢量图
我推荐直接使用Visio导出PDF,然后提供给latex写作。
在Visio中新建多个 “页面(page)”, 一个页面进行合并,标记等操作。另外一个页面用于导出PDF,这个需要调整页面大小,从而消除导出PDF周边空白,也可以使用PDF编辑器调整导出PDF周围空白(修改后导出图形比较麻烦 )。
Visio可以使用的格式
emf(缩放文字不会变动)svg (缩放文字会变动, 会导致较大缩放比例时整个布局变动)
Visio不可可以使用的格式
epspdfpsasv
Visio另存为,选择PDF,在导出选项中选择 “选择”(推荐)或者“当前页”。
如何消除Visio导出PDF四周的空白
文件->选项->自定义功能区->主选项卡,勾选开发工具,点击确定点击开发工具->显示ShapeSheet->页,将Print Properties,PageLeftMargin,PageRightMargin,PageTopMargin,PageBottomMargin全部设置为0设计->大小,适应绘图文件->导出,导出为pdf格式推荐导出是使用“选择”而不是“当前页”,因为当前页导出的PDF文件四周是有边框的,latex生成的文档的图片也是有边框的,不美观。Adobe的illustrator制作矢量图
使用Adobe的illustrator软件替代 前面提到的Visio软件 对需要合并,标注,修改的图片进行操作, 然后导出矢量图。相对来说这个软件是专业矢量图处理软件,上述格式应该都可以处理。但自己不熟悉,没有进一步尝试。
不建议matlab导出到这个软件的格式
emf (文字大小变化)
推荐matlab导出到这个软件的格式
epspssvg
matlab导出PDF格式图片调整边缘空白
网上找到的关于导出PDF格式文件去除边缘空白的代码:
% 导出到pdfset(gcf,'Units','Inches');pos = get(gcf,'Position');set(gcf,'PaperPositionMode','Auto','PaperUnits','Inches','PaperSize',[pos(3), pos(4)])filename = ''; % 设定导出文件名print(gcf,filename,'-dpdf','-r0')close(gcf)
如果觉得《MATLAB导出矢量图结合Visio或Adobe illustrator处理图片》对你有帮助,请点赞、收藏,并留下你的观点哦!