python latex字体xcode

时间:2013-07-27 12:15:43

标签: python matplotlib latex

我正在尝试使用Matplotlib& Xcode中的Python生成科学图形。我的老板希望他们在LaTeX中使用匹配的字体。我知道你可以用这样的东西修改python中的字体:

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

不幸的是,使用plt.show()plt.savefig()打开或保存数字会产生一系列错误,最终会导致OSError: [Errno 2] No such file or directory

我知道“Google是你的朋友”,但我还没有找到任何关于如何解决这个问题的方法。任何帮助将不胜感激。

1 个答案:

答案 0 :(得分:1)

我通常发现直接指定字体文件我最简单。这是一个例子:

import matplotlib.pyplot as plt
import matplotlib.font_manager
from numpy import *

# cmunso.otf is a randomly selected font in my tex installation
path = '/usr/local/texlive/2012/texmf-dist/fonts/opentype/public/cm-unicode/cmunso.otf'
f0 = matplotlib.font_manager.FontProperties()    
f0.set_file(path)

plt.figure()
plt.xlim(0,1.)
plt.ylim(0,1.)

d = arange(0, 1, .1)
plt.plot(d, d, "ob", label='example')

plt.text(.5, .1, 'text.. abcdef', fontproperties=f0, size=30)
plt.xlabel("x label", fontproperties=f0)
plt.legend(prop=f0, loc=2)

enter image description here

我不是字体专家,但我认为这更容易的原因是字体选择通常有一组级联的默认值,用于指定字体的方式与系统的方式不完全匹配。但是,该文件很容易找到并准确指定(尽管它显然不那么便携)。

请注意,对于xlabeltext,关键字为fontpropertieslegendprop