【问题标题】:Can´t save matplotlib figure to .eps in Windows while using text.usetex : True使用 text.usetex 时无法在 Windows 中将 matplotlib 图保存到 .eps :True
【发布时间】:2015-11-04 14:56:14
【问题描述】:

当我运行以下代码时:http://dpaste.com/0210P09 在我的 Linux 发行版上一切正常。

但是,在 Windows7(64 位)中,我无法成功将其保存在 epssvg

这是我得到的错误:

Traceback (most recent call last):

  File "<ipython-input-1-b8da411d11b0>", line 1, in <module>
    runfile('C:/Users/12151056/Documents/Python Scripts/MyPython/1Tplot_2.py', wdir='C:/Users/12151056/Documents/Python Scripts/MyPython')

  File "C:\Users\12151056\AppData\Local\Continuum\Anaconda3\lib\site-packages\spyderlib\widgets\externalshell\sitecustomize.py", line 685, in runfile
    execfile(filename, namespace)

  File "C:\Users\12151056\AppData\Local\Continuum\Anaconda3\lib\site-packages\spyderlib\widgets\externalshell\sitecustomize.py", line 85, in execfile
    exec(compile(open(filename, 'rb').read(), filename, 'exec'), namespace)

  File "C:/Users/12151056/Documents/Python Scripts/MyPython/1Tplot_2.py", line 67, in <module>
    plt.savefig('excel-6.eps')

  File "C:\Users\12151056\AppData\Local\Continuum\Anaconda3\lib\site-packages\matplotlib\pyplot.py", line 577, in savefig
    res = fig.savefig(*args, **kwargs)

  File "C:\Users\12151056\AppData\Local\Continuum\Anaconda3\lib\site-packages\matplotlib\figure.py", line 1476, in savefig
    self.canvas.print_figure(*args, **kwargs)

  File "C:\Users\12151056\AppData\Local\Continuum\Anaconda3\lib\site-packages\matplotlib\backend_bases.py", line 2211, in print_figure
    **kwargs)

  File "C:\Users\12151056\AppData\Local\Continuum\Anaconda3\lib\site-packages\matplotlib\backends\backend_ps.py", line 1009, in print_eps
    return self._print_ps(outfile, 'eps', *args, **kwargs)

  File "C:\Users\12151056\AppData\Local\Continuum\Anaconda3\lib\site-packages\matplotlib\backends\backend_ps.py", line 1033, in _print_ps
    **kwargs)

  File "C:\Users\12151056\AppData\Local\Continuum\Anaconda3\lib\site-packages\matplotlib\backends\backend_ps.py", line 1398, in _print_figure_tex
    rotated=psfrag_rotated)

  File "C:\Users\12151056\AppData\Local\Continuum\Anaconda3\lib\site-packages\matplotlib\backends\backend_ps.py", line 1556, in gs_distill
    your image.\nHere is the full report generated by ghostscript:\n\n' + fh.read())

TypeError: Can't convert 'bytes' object to str implicitly

如果我使用text.usetex : False,我完全没有问题。

我已经安装了 livetex full 和 Ghostscript。

有什么建议可以尝试解决吗?

【问题讨论】:

    标签: python matplotlib latex anaconda eps


    【解决方案1】:

    这里有两个问题。第一个也是次要的是在

    C:\Users\12151056\AppData\Local\Continuum\Anaconda3\lib\site-package\matplotlib\backends\backend_ps.py",第 1556 行

    你应该改变

    fh.read()
    

    fh.read().decode()
    

    这是一个 Python 2/3 错误,在处理 Ghostscript 出错的事实时发生。

    主要问题是matplotlib找不到Ghostscript,因为它不在path环境变量中。您可以通过打开命令提示符并尝试命令gswin32cgs 来检查。如果找不到这些命令,您必须将这些 Ghostscript 可执行文件的路径添加到路径环境变量中。在我的情况下是:

    C:\Program Files (x86)\gs\gs8.54\bin

    但这取决于你的安装路径。

    【讨论】:

    • 鉴于您的安装路径,您似乎必须手动安装 Ghostscript?我希望 Anaconda 自己处理/提供其依赖项..
    • 我没有 anaconda 但仍然有问题。 anaconda 通常应该将 ghostscript 添加到您的路径变量吗?也许将标准的 anaconda ghostscript 安装路径结合到答案中会很好。
    • @Bart,我已经手动安装了 Ghostscript,看看它是否有助于解决问题。
    猜你喜欢
    • 1970-01-01
    • 2013-07-31
    • 2019-02-01
    • 1970-01-01
    • 2021-10-14
    • 1970-01-01
    • 2013-07-26
    • 2021-05-04
    • 1970-01-01
    相关资源
    最近更新 更多