我正在尝试更改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 Live和https://www.pythonanywhere.com/forums/topic/228/的建议
总的来说,我只想在使用希腊字母或乳胶字符时更改python的字体,并以pdf格式保存该图。任何人都可以发现我的错误或指出我正确的方向来修复我的错误吗?