MATLAB 图形作为 Windows 增强图元文件问题

MATLAB 图形作为 Windows 增强图元文件问题

我在 MATLAB 中尝试创建图形时遇到了问题。在详细介绍之前,让我先为您提供一些参考和背景。

我正在完成一份学校报告,并试图确保我的结果清晰专业地显示出来。我不能使用 LaTeX(这是固定的,相信我,我宁愿使用它),所以我在 MS Word 中排版。

总体而言,我发现使用 MATLAB 创建数据图可以产生非常好的结果。具体来说,我发现 .emf 文件可以提供最佳图像(据我所知,它们是矢量图像,放大时不会像素化/质量下降)。我使用的是 MATLAB 2016b。

在 MS Word 中我正在执行以下操作:

  1. 插入
  2. 文本
  3. 快速部件
  4. 字段
  5. 包含图片
  6. 然后我在对话框中链接该文件并选中“从源水平和垂直调整大小”框。

在 MATLAB 中我执行以下操作:

  1. 使用创建图形plot
  2. 使用图形手柄(例如MyFig.Property = Something)设置PaperUnits为英寸
  3. 使用图形手柄PaperPosition = [ 0 0 6 4 ](对应于 6 英寸宽、4 英寸高的图形
  4. 最后,我使用该saveas功能将图形保存为meta文件(Windows 增强型图元文件,.emf)

最终结果正是我想要的,并以矢量图像的形式出现在 MS Word 文档中(如上所述,将 Word 文档保存为 PDF 时保持矢量图像质量)。我可以通过更新所有字段轻松更新 Word 文档中的图表。我很欣赏这种工作流程/自动化,如果可能的话,我想保留它。

当我尝试将此过程应用于需要两个 y 轴的其中一个图时,问题就出现了。我在此图中所做的与其他图的不同之处在于:

  1. 使用yyaxis leftright创建两个 y 轴
  2. 使用YAxis的属性gca对齐两个 y 轴的刻度标记
  3. 从那时起,我应用相同的 MATLAB 过程来保存如上所述的图形。

问题是保存的 .emf 文件不是矢量图像(与其他文件不同)。它显然看起来更糟,而且当我放大时会像素化。如果我删除第二个 y 轴,它就会再次正常工作。

有人知道 y 轴上可能是什么原因导致的,以及我该如何解决吗?我尝试了以下方法,但没有成功:

  • 尺寸与 6x4 英寸不同
  • 取消选中“在 MS Word 中水平和垂直调整框的大小”
  • 改变图形的字体大小(使其变小)

我是否可以正确保存我的数据或者有没有更好的方法来做到这一点?

我可以提供任何其他信息来帮助解决这个问题吗?

答案1

我已经解决了这个问题。

问题似乎是,当我向图中添加第二个轴时,MATLAB 默认使用不同的渲染器来绘制图形。具体来说,就是创建位图图像的渲染器,因此最终产品的质量很差。我不知道为什么它确实做到了,但这样做的触发器(因为它默认为所有具有单个 y 轴的图的正确渲染器)是第二个 y 轴。

我通过简单地强制特定图形使用适当的渲染器(称为“画家”,见下文)进行渲染来解决了这个问题。

myfig.Renderer = 'painters';

相关内容