Python matplotlib画图字体 Python中matplotlib怎样改变画图的字体
一骑代码走天涯 人气:0事情是这样的:平时我汇报或者写论文需要画图,都会喜欢用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-serif 的 Arial 字体)
plt.rcParams['font.sans-serif'] = 'Arial'
加载全部内容