在matplotlibrc中导入Open Sans字体Ubuntu失败

时间:2014-05-19 07:06:46

标签: python ubuntu fonts matplotlib

我尝试将字体Open Sans导入:

import matplotlib as mpl
#update matplotlibrc
mpl.rcParams['font.family'] = 'Open Sans'

#testplot
import matplotlib.pyplot as plt
plt.plot(range(10))
plt.title('Everything is crazy!!!', size=32)
plt.show()

如果我想绘图,matplotlib无法找到该字体,给出如下错误消息:

/usr/lib/pymodules/python2.7/matplotlib/font_manager.py:1236: UserWarning: findfont: Font family ['Open Sans'] not found. Falling back to Bitstream Vera Sans
      (prop.get_family(), self.defaultFamily[fontext]))

/usr/lib/pymodules/python2.7/matplotlib/font_manager.py:1246: UserWarning: findfont: Could not match :family=Bitstream Vera Sans:style=normal:variant=normal:weight=light:stretch=normal:size=medium. Returning /usr/share/matplotlib/mpl-data/fonts/ttf/cmb10.ttf
      UserWarning)

字体安装在Ubuntu中,所有OpenSans - * .ttf文件也被复制到matplotlib文件夹(/ usr / share / matplotlib / mpl-data / fonts / ttf / Ubuntu)。 任何想法如何在matplotlibrc中使用该字体?

1 个答案:

答案 0 :(得分:3)

好的,这是一个老问题,但我刚安装了Open Sans以便在Matplotlib中使用:

OP遵循了正确的步骤,除了需要强制Matplotlib字体缓存重建。最简单的方法:

from matplotlib import font_manager
font_manager._rebuild()

注意,除了在Linux上,以及上面讨论的字体路径,Matplotlib似乎也在〜/ .fonts中搜索,所以你可以在那里安装字体。