MATLAB与高质量EPS图形

MATLAB与高质量EPS图形,matlab,Matlab,我希望将我的MATLAB绘图导出为高质量的图形。具体来说,我希望将其保存为基于矢量的文件格式,如EPS或SVG I have tried print and saveas commands: saveas(h,'myFileName','epsc2'); print('-r150','-depsc2', 'myFilename'); 在所有情况下,这都会生成图形中质量较差的部分,尽管轴标签确实是向量。为什么MatLab在将其放入EPS之前会进行一些可怕的渲染 此处的劣质绘图示例: 编辑: 还

我希望将我的MATLAB绘图导出为高质量的图形。具体来说,我希望将其保存为基于矢量的文件格式,如EPS或SVG

I have tried print and saveas commands:
saveas(h,'myFileName','epsc2');
print('-r150','-depsc2', 'myFilename');
在所有情况下,这都会生成图形中质量较差的部分,尽管轴标签确实是向量。为什么MatLab在将其放入EPS之前会进行一些可怕的渲染

此处的劣质绘图示例:

编辑: 还值得注意的是,如果您使用Mac从Matlab查看EPS文件,“预览”应用程序可能会使内部图形内容光栅化且质量较差,同时使轴和标签矢量化且质量较高。这是非常误导的,但当您在Inkscape中打开EPS文件时,质量实际上是矢量的,而且相当高

编辑2:
我的大学托管帐户已过期,因此您无法再查看该图。只需说它在高质量漂亮的轴线、刻度和标签内显示了一个低质量的光栅样式的绘图即可。

Matlab可以以比EPS更好的质量导出为pdf,但需要注意设置适当的边距和字体大小

编辑: 示例与EPS案例类似,例如:

您可能还想查看图形的
PaperSize
PaperPosition
PaperUnits
属性(通过
set
get
功能)

编辑:另一个选项是使用上可用的功能之一,如下面@user664303提到的功能。我个人最喜欢的乳胶是最新版本的乳胶。与TikZ图书馆一起,我认为这提供了一些最优秀的图表。 也许最好提一下,自2012年以来,我一直积极参与matlab2tikz项目。

MATLAB文件交换功能是在MATLAB中将图形准确导出为eps和pdf(以及位图格式)的合理可靠方法

该函数也来自文件交换,允许您以svg格式导出。它提供了一些额外的好处,例如能够以矢量格式导出半透明面片对象


这篇文章中给出了导出方法的比较。

我想我会分享我遇到的问题,以及我是如何克服的

我得到了糟糕的结果,因为我将错误的渲染器设置为默认值。在我的
startup.m
中,启用了
zbuffer
渲染器。这是一个示例eps输出

我用:
print(gcf,-depsc2',filename.eps')
输出eps。这个eps是如此明显的光栅化。这让我对matlab很生气。然后,我灵机一动——也许我的默认渲染器
zbuffer
干扰了图像保存过程。因此,添加一行:

set(gcf,'renderer','painters')
和前面一样运行print命令,输出如下:


请注意,我刚刚拍摄了100%的eps输出文件截图。我可以确认第二张图像是向量。这里有一个关于在MATLAB中选择的好问题/解释。

我总是通过
matplotlib
python库获取最终的绘图(应该插入论文和出版物中的绘图)


您可以打赌生成的绘图的惊人质量,包括
.pdf
.eps
格式。

我无法解释“为什么”Matlab的股票特性如此糟糕,但您可能想试试。它在Matlab文件交换上可用,对我帮助很大。如果你还没有ghostscript,你也需要安装它。好的,谢谢-我会研究一下,然后报告你能提供一个例子吗?我添加了一些小例子,没有什么,因为它们实际上与EPS案例完全相同。虽然很傻,但我认为这可能值得分享这些知识。我在这个问题上遇到问题的部分原因是MacOSX上的“预览”没有正确渲染图像。这让他们看起来更糟,让我的问题更加复杂。第一课,使用适当的图像编辑器来编辑您的文件!谢谢分享。这个基本问题真的不应该引起这么多头痛给每个人!注意:
print(…)
命令的第二个参数应该是
'-depsc2'
,而不是
'depsc2'
。@evgenisergev-正确,我的错!我已经编辑了那个更正。
export\u fig
是老板。
print('-dpdf','filename.pdf')
set(gcf,'renderer','painters')