一、问题解析
问题说明:电脑上安装了Python3.8,最近遇到绘图,无法将中文标签显示,显示为空白方框。
原因:matplotlib默认的字体为英文字体,导致许多unicode编码的语言文字都无法书写。
python中没有自带的中文字体,我们可以通过修改自己的配置实现中文显示。
二、前期准备
1.首先先了解一下Python常用中文字体对应名称:
名称 | 字体 |
---|---|
黑体 | SimHei |
微软雅黑 | Microsoft YaHei |
微软正黑体 | Microsoft JhengHei |
2.首先查看自己的字体文件的位置,一般都是在/Library/Frameworks/Python.framework/Versions/3.8/lib/python3.8/site-packages/matplotlib/mpl-data/fonts/ttf/
目录下。
可以使用命令进行查看:
import matplotlib.pyplot as plt
from matplotlib import font_manager
for font in font_manager.fontManager.ttflist:
# 查看字体名以及对应的字体文件名
print(font.name, '-', font.fname)
运行程序,可以看到两个路径:
- Python安装的时候,自带的字体,默认没有中文字体,我们针对此路径进行字体补充;
- 最后是MAC电脑中的字体,代码中可以通过指定字体的方式,完成中文展示(另外注意,此路径有权限设置,如作修改,需要输入MAC自己的密码。进行赋权)。
三、具体操作
我们针对第一个地址进行修改,进入对应路径进行修改配置。一共分为三步:
步骤1:下载对应中文字体,放置在字体文件夹里;
步骤2:修改对应配置文件matplotlibrc,为matplotlib的配置文件;
步骤3:删除系统缓存,重新开启程序,运行测试。
步骤1:下载字体Simhei.ttf
(网上会有很多资源,直接下载即可,先是资源已存在,我就不上传了。)