/home/ubuntu/.virtualenvs/da/lib/python3.6/site-packages/matplotlib/font_manager.py:1238: UserWarning: findfont: Font family [‘sans-serif’] not found. Falling back to DejaVu Sans.
(prop.get_family(), self.defaultFamily[fontext]))
1238:是指font_manager.py文件的1238行报错
程序是严格按照逻辑顺序执行的,所以解决BUG的思路是必须一步一步排查,当验证第一步准确无误后再执行第二步,以此迭代,直到最后一步解决BUG
第一步: 找到simhei.ttf文件
在Windows系统C盘中搜索得到一个文件名叫simhei.ttf的简体字字体文件。
注意1: 一定要拷贝自己电脑上的simhei.ttf文件(博主刚开始在网络上下载的simhei.ttf文件,然后放在自己的Ubuntu18.04 上无法读取文件,导致依然报错。)
注意2: 注意自己Python解释器和Matplotlib的版本配对,我的Python解释器版本是python3.6,Matplotlib版本是matplotlib 3.0.0
matplotlib官方文档:https://matplotlib.org/index.html
第二步:查看自己所用matplotlib库所在路径
import matplotlib
print(matplotlib.matplotlib_fname())
例如我的输出结果是:/home/ubuntu/.virtualenvs/da/lib/python3.6/site-packages/matplotlib/mpl-data/matplotlibrc
第三步:拷贝simhei.ttf文件到上述matplotlib库所在路径的fonts/ttf文件夹下
- 在Linux中Ctrl + h 是显示隐藏文件(.virtualenvs)
第四步:修改matplotlib库配置文件
打开第二步输出的文件/home/ubuntu/.virtualenvs/da/lib/python3.6/site-packages/matplotlib/mpl-data/matplotlibrc,增加以下内容:
font.family : sans-serif
font.sans-serif : SimHei
axes.unicode_minus : False
- 在文本中查找的命令是 Ctrl + F
第五步:删除主文件夹下的.cache/matplotlib文件夹
我的主文件夹下的.cache/matplotlib文件夹的路是:/home/ubuntu/.cache/matplotlib
注意:这一步不能少
第六步:重启Jupyter Notebook服务
- BUG解决,到此终于可以正常显示中文了