我期待导出我的MATLAB图形作为一个高质量的数字。具体来说,我想将它保存为基于向量的文件格式,如EPS或SVG。
I have tried print and saveas commands:
saveas(h,'myFileName','epsc2');
print('-r150','-depsc2', 'myFilename');在所有情况下,这都会产生质量较差的图形部分,尽管轴标签确实是向量.为什么MatLab会在把它放入EPS之前做一些可怕的渲染?
下面是劣质地块的例子:http://users.ox.ac.uk/~pemb2372/myFileName.eps
编辑:还值得注意的是,如果你使用Mac查看Matlab中的EPS文件,“预览”应用程序可能会呈现内部图形内容的光栅化和较差的质量,同时留下轴和标签的矢量化和高质量。这是非常误导,但当你打开说EPS文件中,例如,Inkscape,质量实际上是矢量和相当高。
编辑2:我的大学托管帐户已经过期,所以您不能再查看该数字。可以说,它在高质量的轴心线、滴答线和标签中显示了质量差的栅格式绘图。
发布于 2011-11-26 20:06:25
Matlab可以输出到比EPS质量更好的pdf,但需要设置良好的边距和字体大小。
编辑:示例类似于在print的帮助下解释的
saveas(gcf,'filename.pdf')或
print('-dpdf','filename.pdf')您还可能需要查看图形的PaperSize、PaperPosition和PaperUnits属性(通过set和get函数)。
编辑:另一个选项是使用FileExchange上可用的函数之一,如下面的@user664303中提到的函数。我个人最喜欢与LaTeX一起使用的是matlab2tikz,它的最新版本可以从GitHub获得。与external库TikZ一起,我认为这提供了一些最优秀的图形。也许这也是最好的提到,我一直积极参与matlab2tikz项目自2012年以来。
发布于 2013-05-08 01:19:09
我想我会分享我的问题,以及我是如何克服的.
我得到了糟糕的结果,因为我把错误的渲染器设置为默认。在我的startup.m中,我启用了zbuffer呈现器。这是eps输出的一个例子。

我用:print(gcf,'-depsc2','filename.eps')做了那个eps输出。这个eps很明显是光栅化的。这让我对matlab很生气。然后,我有了一个脑电波--也许我的默认渲染器zbuffer正在干扰图像保存过程。因此,添加以下一行:
set(gcf,'renderer','painters')并像前面一样运行print命令,这是输出:

请注意,我刚刚截图的eps输出文件100%。我可以确定第二幅图像实际上是向量。这里有一个很好的问题/解释选择渲染器在MATLAB中。
发布于 2011-12-01 17:30:37
在MATLAB文件交换上的图2函数是一种相当可靠的方法,可以准确地将图形导出到MATLAB中的eps和pdf (以及位图格式)。
plot2svg函数也来自文件交换,允许您以svg格式导出。它提供了一些额外的好处,例如能够以矢量格式导出半透明修补程序对象。
在此博客帖子中给出了导出方法的比较。
https://stackoverflow.com/questions/8280971
复制相似问题