matlab图形矢量化解决方案

时间:2023-04-10 18:10:38

大致思路:matlab中生成矢量格式文件-导入Visio中-编辑-导出合适格式-在其他软件中使用

准备工具

  • Matlab 2014b或更高版本
  • Visio 2007或更高版本

    我查看过,Matlab能够输出的矢量化文件大概有*.svg、*.eps、*.pdf三种,但是这三种中,Visio能够打开的只有*.svg。之所以选择Visio,是因为画示意图来说,Visio基本算得上是比较好的选择了。

技术基础

简单的Matlab编程能力(目测你一天就能学会的Matlab知识,差不多就够用)

理论基础

理论基础就直接参看周建锋老师的博文好了:http://blog.sciencenet.cn/blog-3854-760545.html

绘制图像

下面以一个简单的图像示例来表示:

clc;clear ;close all
x = 0 : 0.05 : 10;
y1 = sin(x);
y2 = cos(x);
plot(x, y1, 'LineWidth',2)
hold on
plot(x, y2, 'LineWidth', 2)
legend('Line1','Line2','Location','best') % 加图例,并将之放在最好的Location
axis auto
set(gca,'FontSize',14,'LineWidth', 1,'FontName', 'Times New Roman')
set(gcf,'Position',[400 100 800 600]);
if ~exist('./example.svg','file') % 判断文件是否存在
    saveas(gcf,'./example.svg')
end

得到的图像大致如下:

matlab图形矢量化解决方案

检查matlab当前的工作路径下,已经有了一个example.svg的文件。将这个文件在Visio中打开。

更简单一点的打开方式是:新建Visio文件,直接讲example.svg拖入Visio中。

我们知道,*.svg是网络通用的矢量图形格式,很多软件中都能直接打开的,最明显的软件当然是各种浏览器了,比如IE。

在上面的代码中,exist('./example.svg','file')是判断matlab的当前目录下文件example.svg是否存在,如果存在就不再生成example.svg 了,避免多次重复生成。但是如果你的图形需要更新,记得删除之前生成的版本。

在Matlab中,另外一种生成*.svg格式的方式是直接在图形窗口->file->save as...->save as type栏选择svg格式即可保存为*.svg格式的文件。当然,你需要自己命名一个文件名。

Visio中打开

在Visio中打开之后,我们大致会得到这样的图形,可以看到,很清晰,矢量化的。

matlab图形矢量化解决方案

同时,也很明显,它是高度组合化的。

所以,我们需要将之解组合

接下来按照步骤:

1. 选择图形(点击图形or按ctrl+A也行)

2. 点击home下的group

3. 点击解组合(ungroup)

4. 再次重复动作2和3,两次。也就是说说总共需要解组合三次。

下面两张图作为指引。

matlab图形矢量化解决方案

group功能

matlab图形矢量化解决方案

解组合功能

在Visio中的后处理

图形在Visio中打开之后便可以生成为其他的图形格式或者直接将visio文件插入word中即可。

  1. 删除白色底纹

    解组合之后,图形下层会有一些白色底矩形,可以将之删除,使图形透明。如下图所示,左下角和右上角的两块矩形分别是原来图形的曲线画布区域和整个图形画布区域的底纹图形填充方块。

    matlab图形矢量化解决方案

  2. 查看图形元素

    当我们选择*曲线工具之后,在点击图形中的Line2曲线,可以看到,实际上Line2曲线是由*曲线通过控制很多的节点来实现cos函数图形的绘制的。这也可以让我们反向思考matlab底层的绘制函数时怎么实现曲线的绘制的。

    matlab图形矢量化解决方案

  3. 修改元素

    在Visio中,我们可以选择任何的元素来进行修改,也可以在上面增加或删除任何的元素。这给我们修饰图形方面有了巨大的空间(当然不能进行数据修改以此来发文章)。

    matlab图形矢量化解决方案

原文地址:http://www.cnblogs.com/cyruszhu/p/5477569.html
未经允许,禁止转载!相关请求,请联系作者:yunruizhu@126.com