目录
注意:以上步骤适用于Mac系统下的Matplotlib绘图。
在Mac系统下使用Matplotlib进行绘图时,有时会遇到中文字体缺失的问题,特别是当使用SimHei字体时,会弹出警告:
findfont: Font family 'SimHei' not found。
这通常是因为系统中没有安装相应的中文字体。为了解决这个问题,可以按照以下步骤进行操作:
1. 确认字体缺失
首先,检查代码中是否使用了SimHei字体。可以在Matplotlib的rcParams中设置字体,或者在代码中使用特定的字体名称。如果报错信息中提到了SimHei字体,那么这就是问题所在。
2. 安装中文字体
为了解决字体缺失的问题,需要安装中文字体。首先需要下载SimHei字体的文件(通常是.ttf文件),下载链接如下:
https://us-logger1.oss-cn-beijing.aliyuncs.com/SimHei.ttf
然后通过命令安装到系统中:打开终端应用程序,使用cd命令切换到字体文件所在的文件夹,继续运行命令sudo cp SimHei.ttf /Library/Fonts/
来安装字体。
例如我将SimHei.ttf文件下载到了下载文件夹。
使用cd ~/Downloads进入到下载文件夹,然后使用命令
sudo cp SimHei.ttf /Library/Fonts/
来安装字体,输入密码后,字体将被安装到系统中。
cd ~/Downloads # 进入下载文件夹
sudo cp SimHei.ttf /Library/Fonts/ # 安装字体
3.配置Matplotlib使用中文字体
安装了中文字体后,需要配置Matplotlib使用该字体。可以在Matplotlib的rcParams中设置字体,或者在代码中使用特定的字体名称。例如,可以在代码的开头添加以下行来设置字体。
import matplotlib as mpl
mpl.rcParams['font.family'] =['SimHei'] # 设置默认字体为SimHei
mpl.rcParams['axes.unicode_minus'] = False # 解决负号显示问题
4. 清除字体缓存
更改了系统字体或修改了rcParams
设置,需要清除matplotlib
的字体缓存。这个缓存文件通常位于用户的主目录下的.matplotlib/fontList.json
。可以使用如下命令rm -rf /Users/starry/.matplotlib删除整个文件夹。
rm -rf /Users/starry/.matplotlib # 注意将starry替换为自己电脑的路径
删除这个文件后,重启Python或重新运行脚本,matplotlib
将会重新构建字体列表。这样设置后,Matplotlib将使用SimHei字体进行绘图。
5. 测试绘图
完成以上步骤后,尝试重新运行代码进行绘图。现在应该不再出现中文字体缺失的报错信息,并且绘图中应该能够正常显示中文字体。