MATLAB导出矢量图结合Visio或Adobe illustrator处理图片

来源

  1. 使用matlab完成绘图后,希望直接导出矢量图供写作,而不是PNG等位图。
  2. 有些论文对图的数量还有限制,有时需要将多个图进行合并。虽然可以直接使用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可以使用的格式

  1. emf(缩放文字不会变动)
  2. svg (缩放文字会变动, 会导致较大缩放比例时整个布局变动

Visio不可可以使用的格式

  1. eps
  2. pdf
  3. ps
  4. asv

Visio另存为,选择PDF,在导出选项中选择 “选择”(推荐)或者“当前页”。

MATLAB导出矢量图结合Visio或Adobe illustrator处理图片_第1张图片

如何消除Visio导出PDF四周的空白

  1. 文件->选项->自定义功能区->主选项卡,勾选开发工具,点击确定
  2. 点击开发工具->显示ShapeSheet->页,将Print Properties,PageLeftMargin,PageRightMargin,PageTopMargin,PageBottomMargin全部设置为0
  3. 设计->大小,适应绘图
  4. 文件->导出,导出为pdf格式
  5. 推荐导出是使用“选择”而不是“当前页”,因为当前页导出的PDF文件四周是有边框的,latex生成的文档的图片也是有边框的,不美观。

MATLAB导出矢量图结合Visio或Adobe illustrator处理图片_第2张图片

Adobe的illustrator制作矢量图

使用Adobe的illustrator软件替代 前面提到的Visio软件 对需要合并,标注,修改的图片进行操作, 然后导出矢量图。相对来说这个软件是专业矢量图处理软件,上述格式应该都可以处理。但自己不熟悉,没有进一步尝试。

不建议matlab导出到这个软件的格式

  1. emf (文字大小变化)

推荐matlab导出到这个软件的格式

  1. eps
  2. ps
  3. svg

matlab导出PDF格式图片调整边缘空白

网上找到的关于导出PDF格式文件去除边缘空白的代码:

% 导出到pdf
set(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,matlab导出矢量图,matlab结合Visio,matlab论文出图,matlab导出高清图片)