尝试更改python中的字体并使用Latex渲染文本时出错

时间:2015-08-06 18:30:53

标签: python-2.7 matplotlib latex anaconda spyder

我正在尝试更改python用于绘图的字体。我有希腊字母和其他符号,我需要使用,所以我一直在尝试使用他们的乳胶形式。我想以pdf格式保存这个数字。我正在使用Spyder环境进行编程;我的Spyder和python来自anaconda。

我正在尝试执行http://matplotlib.org/1.3.1/users/usetex.html指定的程序 - 我已按照说明操作,并确保我有三个先决条件可以使用它们并且它们在我的路径中 - “一个正在运行的LaTeX安装,dvipng(可能包含在LaTeX安装中)和Ghostscript(建议使用GPL Ghostscript 8.60或更高版本。)这些外部依赖项的可执行文件必须全部位于PATH上。“

import numpy as np
import matplotlib.pyplot as plt


# Example data
t = np.arange(0.0, 1.0 + 0.01, 0.01)
s = np.cos(4 * np.pi * t) + 2

plt.rc('text', usetex=True)
plt.rc('font', family='serif')
plt.plot(t, s)

plt.xlabel(r'\textbf{time} (s)')
plt.ylabel(r'\textit{voltage} (mV)',fontsize=16)
plt.title(r"\TeX\ is Number "
          r"$\displaystyle\sum_{n=1}^\infty\frac{-e^{i\pi}}{2^n}$!",
          fontsize=16, color='gray')
# Make room for the ridiculously large title.
plt.subplots_adjust(top=0.8)

#plt.savefig('tex_demo')
plt.show()

当我运行该程序时,该程序的第二行到最后一行被注释掉,一个图表显示了绘制的曲线,但没有别的 - 没有轴标签或标题或轴刻度标记。

如果我取消注释行plt.savefig('tex_demo')或尝试plt.savefig('test_demo.pdf',format ='pdf',bbox_inches ='tight')我收到错误:

In [3]: runfile('/Users/Emily/Documents/Research/Masters_Thesis/Examples/tex_demo.py', wdir='/Users/Emily/Documents/Research/Masters_Thesis/Examples')
Traceback (most recent call last):

  File "<ipython-input-3-9b7e3d9c6b78>", line 1, in <module>

... lots of lines here

  File "/Users/Emily/anaconda/lib/python2.7/site-packages/matplotlib/dviread.py", line 876, in find_tex_file
    stderr=subprocess.PIPE)

  File "/Users/Emily/anaconda/lib/python2.7/subprocess.py", line 710, in __init__
    errread, errwrite)

  File "/Users/Emily/anaconda/lib/python2.7/subprocess.py", line 1335, in _execute_child
    raise child_exception

OSError: [Errno 2] No such file or directory

我也尝试过其他变种 -

import pylab as pl
import matplotlib as mp
...
mp.rc('text', usetex=True)
mp.rc('font', family='serif')
...
当pl.savefig('tex_demo')被注释(无轴)或未注释(OS错误)时,

得到相同的结果。

我环顾四周,看看是否有其他人遇到了同样的问题但是经常出现与“OSError:[Errno 2]相关的错误没有这样的文件或目录”python与我不在同一个环境中。

使用此变体(Matplotlib not using latex font while text.usetex==True),

from matplotlib import rc
import matplotlib.pylab as plt

rc('font', **{'family': 'serif', 'serif': ['Computer Modern']})
rc('text', usetex=True)

x = plt.linspace(0,5)
plt.plot(x,plt.sin(x))
plt.ylabel(r"This is $\sin(x)$", size=20)
plt.show()

我会收到错误(这是我开始时的错误,但在安装Ghostscript之后却不那么频繁):

Traceback (most recent call last):

... lots of lines here.

  File "/Users/Emily/anaconda/lib/python2.7/site-packages/matplotlib/texmanager.py", line 670, in get_text_width_height_descent
    dvifile = self.make_dvi(tex, fontsize)

  File "/Users/Emily/anaconda/lib/python2.7/site-packages/matplotlib/texmanager.py", line 417, in make_dvi
    report))

RuntimeError: LaTeX was not able to process the following string:
'lp'
Here is the full report generated by LaTeX: 

出现此错误,我不确定如何实施TeX in matplotlib on Mac OS X and TeX Livehttps://www.pythonanywhere.com/forums/topic/228/的建议

总的来说,我只想在使用希腊字母或乳胶字符时更改python的字体,并以pdf格式保存该图。任何人都可以发现我的错误或指出我正确的方向来修复我的错误吗?

0 个答案:

没有答案