我在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机器上运行脚本,然后我就解决了问题。
答案 0 :(得分:1)
好像你安装的字体有问题,在我的情况下,我可以通过以下命令指定我想要使用的字体来解决问题:
mpl.rcParams['font.serif'] = 'Times'
可在此处找到可用字体列表:http://matplotlib.org/users/customizing.html