gpt4 book ai didi

python - 更改 Matplotlib 的默认字体

转载 作者:IT老高 更新时间:2023-10-28 22:22:37 24 4
gpt4 key购买 nike

我正在尝试将 matplotlib 的默认字体更改为 Helvetica Neue。在我的带有 EPD/Canopy 的 Mac 上,前段时间一切正常。

现在尝试在 ubuntu 上做同样的事情,但它不起作用。

这就是我所做的:

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

最佳答案

这不会永久更改您的字体,但值得一试。

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

关于python - 更改 Matplotlib 的默认字体,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21461155/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com