更改matplotlib的默认字体 [英] change matplotlib's default font

查看:1907
本文介绍了更改matplotlib的默认字体的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我试图将matplotlib的默认字体改为Helvetica Neue。在我的Mac上使用EPD / Canopy前段时间一切正常。

试着在ubuntu上做同样的事情,它不工作。



这是我做的:
$ b


  1. 安装了Helvetica Neue

      $ fc-match'Helvetica Neue':Light 
    HelveticaNeue-Light.otf:Helvetica Neue细体


  2. 将odt / dfont转换为ttf:

      fondu -show HelveticaNeue.dfont 


  3. 将matplotlibrc改为

      $ cat〜/ .config / matplotlib / matplotlibrc 
    ...
    font.family:Helvetica Neue

    我也试过:

      font.family:sans-serif 
    font.sans-serif:Helvetica Neue

  4. 我删除了字体缓存

      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:未找到字体家族['Helvetica Neue']。返回Bitstream Vera Sans

(prop.get_family(),self.defaultFamily [fontext]))



版本是1.3.0

  $ python -c'import matplotlib;打印matplotlib .__ version__'
1.3.0

我也尝试将字体移动到〜/ .config / matplotlib / fonts / ttf 但是不起作用。




编辑:
建议我试着选择特定的字体文本。

pre $ 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:未找到字体家族['Helvetica Neue']。回到Bitstream Vera Sans

不过,我似乎只在这个Helvetica / Helvetica Neue字体。
(prop.get_family(),self.defaultFamily [fontext]))

解决方案

字体永久,但它是值得一试的

$ matplotlib.rc('font',family ='sans-serif')
matplotlib.rc('font',serif ='Helvetica Neue')
matplotlib.rc('text',usetex ='false')
matplotlib.rcParams.update({'font.size ':22})


I'm trying to change matplotlib's default font to Helvetica Neue. On my Mac with EPD/Canopy everything worked fine some time ago.

Trying to do the same on ubuntu now and it's not working.

This is what I did:

  1. Installed Helvetica Neue

    $ fc-match 'Helvetica Neue':Light
    HelveticaNeue-Light.otf: "Helvetica Neue" "細體"
    

  2. Converted the odt/dfont into ttf:

    fondu -show HelveticaNeue.dfont
    

  3. changed matplotlibrc to

    $ cat ~/.config/matplotlib/matplotlibrc
    ...
    font.family: Helvetica Neue
    

    I also tried with:

    font.family: sans-serif
    font.sans-serif: Helvetica Neue
    

  4. I removed the font cache

    rm ~/.config/matplotlib/fontList.cache
    

But none of these steps are working for me.

    $ 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]))

Version is 1.3.0

    $ python -c 'import matplotlib; print  matplotlib.__version__'
    1.3.0

I also tried moving the fonts to ~/.config/matplotlib/fonts/ttf but it didn't work.


EDIT: As suggested I tried selecting a specific font for a specific text.

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')

But it makes no difference.

/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

However I seem to experience this problem only with this Helvetica/Helvetica Neue font. (prop.get_family(), self.defaultFamily[fontext]))

解决方案

This won't change you font permanently, but it's worth a try

matplotlib.rc('font', family='sans-serif') 
matplotlib.rc('font', serif='Helvetica Neue') 
matplotlib.rc('text', usetex='false') 
matplotlib.rcParams.update({'font.size': 22})

这篇关于更改matplotlib的默认字体的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆