事情是这样的:平时我汇报或者写论文需要画图,都会喜欢用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
步骤:
下载必要的支持库
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-serif 的 Arial 字体)
plt.rcParams['font.sans-serif'] = 'Arial'
到此这篇关于Python中matplotlib如何改变画图的字体的文章就介绍到这了,更多相关Python matplotlib改变画图的字体内容请搜索编程网以前的文章或继续浏览下面的相关文章希望大家以后多多支持编程网!