在 jupyter 中使用 matplotlib
进行画图的时候, 如果包含中文, 会有一堆报错, 并且输出的图片中的中文也无法正常显示.
解决方案:
- 查找支持的中文字体
py
import matplotlib.font_manager as fm
# matplotlib only know these fonts
font_list = [f for f in fm.fontManager.ttflist]
# check font names what you want
# 'CJK', 'Han', , 'TW'
cjk_list = ['CN']
for f in font_list:
if any(s.lower() in f.name.lower() for s in cjk_list):
print(f'name={f.name}, path={f.fname}')
输出结果:
name=AR PL UMing CN, path=/usr/share/fonts/cjkuni-uming/uming.ttc
如果没有结果, 则需要去下载安装字体
- 设置字体
在输出结果中, 找一个 name 的值进行设置:
py
%matplotlib inline
plt.rc('font', family='AR PL UMing CN')
matplotlib
的图中, 中文就可以正常显示了
如果依然不行, 尝试删除 rm -rf ~/.matplotlib/font*
or rm -rf ~/.cache/.matplotlib/fontl*
. 重启 jupyter