我正在尝试将matplotlib的默认字体更改为Helvetica Neue。在我的Mac上使用EPD/Canopy一段时间前一切正常。
现在在Ubuntu上尝试做同样的事情,但不起作用。
这是我所做的:
安装了Helvetica Neue
将odt/dfont转换为ttf:
fondu -show HelveticaNeue.dfont
将matplotlibrc更改为
$ cat ~/.config/matplotlib/matplotlibrc ... font.family: Helvetica Neue
我也尝试了以下方式:
font.family: sans-serif font.sans-serif: Helvetica Neue
我清除了字体缓存
但是这些步骤对我都没有起作用。rm ~/.config/matplotlib/fontList.cache
$ python -c 'from matplotlib import pyplot as plt; plt.plot(1); plt.savefig("/tmp/test.png")' /usr/local/lib/python2.7/dist-packages/matplotlib-1.3.0-py2.7-linux-x86_64.egg/matplotlib/font_manager.py:1236: UserWarning: findfont: Font family ['Helvetica Neue'] not found. Falling back to Bitstream Vera Sans
(prop.get_family(), self.defaultFamily[fontext]))
版本是 1.3.0
$ python -c 'import matplotlib; print matplotlib.__version__' 1.3.0
我也尝试将字体移动到
~/.config/matplotlib/fonts/ttf
,但没有成功。
编辑: 按建议,我尝试为特定的文本选择特定的字体。
import matplotlib as mpl mpl.use('Agg') import matplotlib.pyplot as plt import matplotlib.font_manager as font_manager path = '/home/<myusername>/.fonts/HelveticaNeue.ttf' prop = font_manager.FontProperties(fname=path) prop.set_weight = 'light' mpl.rcParams['font.family'] = prop.get_name() mpl.rcParams['font.weight'] = 'light' fig, ax = plt.subplots() ax.set_title('Text in a cool font', fontproperties=prop, size=40) plt.savefig('/tmp/test2.png')
但这没有任何区别。
/usr/local/lib/python2.7/dist-packages/matplotlib-1.3.0-py2.7-linux-x86_64.egg/matplotlib/font_manager.py:1236: UserWarning: findfont: Font family ['Helvetica Neue'] not found. Falling back to Bitstream Vera Sans
然而,我似乎只在使用Helvetica/Helvetica Neue字体时遇到了这个问题。(prop.get_family(), self.defaultFamily[fontext]))
$ fc-match 'Helvetica Neue':Light
HelveticaNeue-Light.otf: "Helvetica Neue" "細體"
fontList.cache
文件?这就是我所做的。 - mcmayer