当前位置 博文首页 > Python中matplotlib如何改变画图的字体

    Python中matplotlib如何改变画图的字体

    作者:一骑代码走天涯 时间:2021-09-18 18:30

    事情是这样的:平时我汇报或者写论文需要画图,都会喜欢用Python的 matplotlib 和 seaborn 把数据📊 📈 和分析结果 🗂 直接画出来,因为这样太方便,而且解析度非常高。

    然而,今天老板说想需要我总结下我的分析结果,然后ta说不喜欢 matplotlib 的字体,让我改一改。但是,Jupyter Notebook一直报错说:

    Findfont: Font family [‘sans-serif‘] not found. Falling back to DejaVu Sans.

    搞得我很头疼🤯🤯🤯

    所以,我就花了点时间,研究了matplotlib 究竟如何可以随意改变成 Windowns MS字体。

    以下是我的操作系统:
    OS:Ubuntu 18.04.5 LTS
    Python version:3.6.11
    Matplotlib: 3.3.2
    Seaborn: 0.10.0

    步骤:

    1. 下载必要的支持库

    sudo apt-get install fontconfig
    sudo apt install ttf-mscorefonts-installer

    在这里插入图片描述

    这里需要用 Tab键选择 <Yes>再按Enter键同意,之后等程序顺利跑完就可以了。

    成功后,就能够在 /usr/share/fonts/truetype/msttcorefonts/ 下找到新下载的 Windows 字体。

    2. 更新字体库 + 清理 matplotlib 的缓存

    sudo fc-cache -fv
    rm -fr ~/.cache/matplotlib

    安装完字体,如果不更新字体库,系统是无法知道你有新的字体要导入 matplotlib。 然后,第二个指令是用来防止 matplotlib运行的时候还用旧版本的缓存设定你的图表。删除后,之后运行 matplotlib 就会自动建立一 个新的设定缓存。

    3. 打开 Jupyter Notebook
    在导入matplotlib和seaborn之后,就可以用

    plt.rcParams['font.family']

    改变你的字体。举个栗子,如果我想换成sans-serif,然后查看matplotlib sans-serif 字体的显示顺序,就用下图的指令:

    在这里插入图片描述

    如果想强制只使用一种字体,也可以再加入下面的指令 (e.g. 只用 sans-serifArial 字体)

    plt.rcParams['font.sans-serif'] = 'Arial'

    jsjbwy
    下一篇:没有了