希腊字母在matplotlib乳胶输出中以粗体显示

时间:2015-07-07 14:34:46

标签: python matplotlib latex

我在matplotlib中使用乳胶输出来打印轴和图例的希腊符号。 (serif)文本以正常字体粗细打印,但某些特殊字符以粗体打印。特别是,我指的是微观的mu,也是Angstrom的(非希腊)符号。但是,正常打印其他希腊符号,如Omega。我举了一个例子来证明:

#!/usr/bin/python
# -*- coding: utf-8 -*-

import matplotlib as mpl
import matplotlib.pyplot as plt


mpl.rcParams['text.usetex'] = True
mpl.rcParams['text.latex.unicode'] = True

mpl.rcParams['font.family'] = 'serif'
mpl.rcParams['text.latex.preamble'] = [
    r"\usepackage{textgreek}",
    r"\usepackage{siunitx}"]


fig = plt.figure()

plt.plot([1, 2, 4], [0, 9, 7])
plt.xlabel(
    r"\si{\micro\metre} " +
    r"\si{\omega\metre} " +
    r"\si{\nano\metre} " +
    r"\si{\angstrom} " +
    r"\si{\micro\metre}\textmu")
plt.show()

fig.savefig('test.png')
fig.savefig('test.pdf')

我在实时输出,矢量输出和图像输出方面存在此问题。令我感到困惑的是,我在我的工作中使用了我的脚本在过时的Ubuntu机器上,但安装了python 3.3。现在我尝试在我的个人Arch机器上运行脚本,然后我就解决了问题。

1 个答案:

答案 0 :(得分:1)

好像你安装的字体有问题,在我的情况下,我可以通过以下命令指定我想要使用的字体来解决问题:

mpl.rcParams['font.serif'] = 'Times'

可在此处找到可用字体列表:http://matplotlib.org/users/customizing.html