0

我正在尝试将 Stata 生成的直方图作为 .eps 文件导入Mathematica,但它不显示轴的标签。也就是说,出于某种原因,Mathematica不会导入 .eps 而是对其进行转换。

我怎样才能避免这种情况?截至目前,我正在使用普通

Import["~/hst.eps"]
4

2 回答 2

1

我最近在 LateX 和 pdf 图表上遇到了类似的问题,这也体现在 eps 版本中。我最终修改了用户编写的 graphexportpdf,事情似乎解决了。也许您会发现此解决方案很有帮助。

于 2013-09-06T20:53:49.353 回答
0

Mathematica当前 (v.9) 通常无法从 .eps 文件中正确导入文本元素。一种可能的解决方案是将绘图导出为 .pdf 而不是 .eps 从绘图软件中导出,然后Import生成 .pdf。"TextOutlines" -> False如果您需要将文本导入为文本,您可以使用该选项关闭大纲。

如果无法从绘图软件导出为 .pdf,您可以通过另一个程序将 .eps 转换为 .pdf,然后Import如上所述生成 .pdf。对于您的文件orders_weekly.eps使用该gsEPS2PDFEmbedFonts函数然后Import生成.pdf,我得到(Mathematica 8.0.4):

gsEPS2PDFEmbedFonts["orders_weekly.eps", "orders_weekly.pdf"]
graphics=First@Import["orders_weekly.pdf"(*,"TextOutlines"->False*)];
Show[graphics, Frame -> True, PlotRange -> All, ImageSize -> Automatic]

阴谋

我评论了这个"TextOutlines" -> False选项,因为Mathematica 8.0.4 仍然错误地导入旋转的文本。不过,我还没有用 v.9 对其进行测试。


另一种可能性是将 .eps 文件中的所有字形转换为 oultines。基于Jens Nöckel 的代码

gsEPS2outlinedEPS[epsPath_String, outlinedEPSPath_String] := 
 Run["gswin64c.exe -sDEVICE=epswrite -dNOCACHE -sOutputFile=\"" <> 
   outlinedEPSPath <> "\" -q -dbatch -dNOPAUSE \"" <> epsPath <> 
   "\" -c quit"]

gswin64c.exe是适用于 64 位 Windows 系统的 GhostScript 可执行文件的名称,对于 Linux,将其替换为gs. 请注意,您应该安装并配置了GhostScript(对于 Windows,您应该和 添加gs\bings\lib顶级Ghostscript 目录)PATHgs

于 2013-09-05T23:18:32.807 回答