一、环境描述
- python 3.7
- mac 10.14.5
二、问题描述
如下图所示,当使用matplotlib绘制图片的时候,所有的中文字符无法正常显示。
三、解决方法
1、下载字体ttf文件
链接:https://pan.baidu.com/s/1RLVvbIi_NpAiiycBYQRPCQ 密码:n1sv
2、找到配置文件
使用如下代码找到配置文件:
import matplotlib
print (matplotlib.matplotlib_fname()) # 将会获得matplotlib配置文件
- 1
- 2
我个人的配置如下图:
3、找到ttf字体文件存放目录并添加ttf文件
打开/Users/lina/.matplotlib/,会看到有一个fontList.json文件,打开文件,会看到一系列的字体配置,可以得到字体配置的目录:
打开目录/anaconda3/lib/python3.7/site-packages/matplotlib/mpl-data/fonts/ttf/,将刚刚下载的simhei.ttf复制到此文件夹下,并将simhei.ttf添加到fontList.json中,如下图:
4、重新加载新的字体库
使用下面代码加载新的字体库:
from matplotlib.font_manager import _rebuild
_rebuild()
- 1
- 2
注意,这个只需要执行一次即可。
5、在画图中应用simhei字体
使用如下代码引用simhei字体:
import matplotlib.pyplot as plt
plt.rcParams['font.sans-serif']=['SimHei']
- 1
- 2
- 3
其最终效果如下,中文可以正常显示。
参考文章:
https://blog.csdn.net/quiet_girl/article/details/103398605
https://blog.csdn.net/Lengwenin/article/details/97372563
https://www.cnblogs.com/wanghui-garcia/p/11195925.html