定位原因: 主要是matplotlib 字体库缺失,没有中文字体导致的
解决方法:
1, 安装中文字体;
官网下载简体中文 搜索Simhei.ttf
找Mac 自带的中文字体,将其从mac自身的字体库,粘贴到 ``` matplotlib``` 的字体库
2,修改配置:
# 找到matplotlib的字体库位置,配置位置
import matplotlib
# 查找字体路径
print(matplotlib.matplotlib_fname())
# 查找字体缓存路径
print(matplotlib.get_cachedir())
2,可以看到配置库的位置为:
/usr/local/lib/python3.7/site-packages/matplotlib/mpl-data/matplotlibrc
字体库的位置在相同目录下的font/ttf文件夹
/usr/local/lib/python3.7/site-packages/matplotlib/mpl-data/fonts/ttf
3, 字体放在对应目录:
拷贝下载的SimHei -> /usr/local/lib/python3.7/site-packages/matplotlib/mpl-data/fonts/ttf/
4, 修改配置:
vim /usr/local/lib/python3.7/site-packages/matplotlib/mpl-data/matplotlibrc
第一个地方:
# font.family : sans-serif
操作: 去掉注释
font.family : sans-serif
第二个地方:
#font.sans-serif :DejaVu Sans, Bitstream Vera Sans, Computer Modern Sans Serif, Lucida Grande, Verdana, Geneva, Lucid, Arial, Helvetica, Avant Garde, sans-serif
操作: 去掉注释,添加我们添加进去的字体:SimHei
font.sans-serif :SimHei,DejaVu Sans, Bitstream Vera Sans, Computer Modern Sans Serif, Lucida Grande, Verdana, Geneva, Lucid, Arial, Helvetica, Avant Garde, sans-serif
5,重新加载
from matplotlib.font_manager import _rebuild
_rebuild()
6,查看是否有SimHei 字体存在
Fonts = sorted([f.name for f in matplotlib.font_manager.fontManager.ttflist])
for e in Fonts:
print(e)
# 搜索SimHei,如果存在就可以下一步,如果不存在,就重启电脑,然后重复5,6,差不多就没问题了
7, 测试中文显示问题
#测试:
import matplotlib.pyplot as plt
plt.rcParams['font.sans-serif']=‘SimHei'
plt.title('你好')
plt.show()