我正在尝试将 Stata 生成的直方图作为 .eps 文件导入Mathematica,但它不显示轴的标签。也就是说,出于某种原因,Mathematica不会导入 .eps 而是对其进行转换。
我怎样才能避免这种情况?截至目前,我正在使用普通
Import["~/hst.eps"]
我正在尝试将 Stata 生成的直方图作为 .eps 文件导入Mathematica,但它不显示轴的标签。也就是说,出于某种原因,Mathematica不会导入 .eps 而是对其进行转换。
我怎样才能避免这种情况?截至目前,我正在使用普通
Import["~/hst.eps"]
我最近在 LateX 和 pdf 图表上遇到了类似的问题,这也体现在 eps 版本中。我最终修改了用户编写的 graphexportpdf,事情似乎解决了。也许您会发现此解决方案很有帮助。
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\bin
到gs\lib
顶级Ghostscript 目录)PATH
gs