Matplotlib绘制图像的时候显示中文时候,中文会变成小方格子。其实,Matplotlib是支持中文编码的,造成这个现象的原因是,matplotlib库的默认配置信息里面没有中文字体的相关信息。那需要中文显示该怎么办呢?
-
解决方案:代码中指定中文字体
plt.rcParams['font.sans-serif'] = ['SimHei'] -
为什么添加了代码还是不能显示?
请查看自己的Matplotlib中是否安装了代码中指定的字体。如果没有安装,可以更换为已安装的字体名称,或者自行安装这个制定字体。
查看代码如下:from matplotlib.font_manager import fontManager import os ch_fonts = sorted([font.name for font in fontManager.ttflist if os.path.exists(font.fname) and os.stat(font.fname).st_size>1e6]) # 按顺序输出所有中文的字体 for i in ch_fonts: print(i) # 判断FangSong字体是否存在,可以将FangSong更换为其他的中文字体类型 # 结果返回True则表示已安装,否则为未安装 font = 'FangSong' print(font in ch_fonts) -
如何自行安装某个字体?
请查看自己的Matplotlib中是否安装了代码中指定的字体。如果没有安装,可以更换为已安装的字体名称,或者自行安装这个制定字体。
第一步:查询Matplotlib所在文件夹的位置。并下载.ttf格式的中文字体,在该文件夹下找到mpl-data\fonts\ttf文件夹,并将字体文件放入其中。import matplotlib print(matplotlib.__file__)第二步:使用下面的代码,获取缓存文件夹, 删除该目录下的fontList.json文件, 并重新import matplotlib
import matplotlib print(matplotlib.get_cachedir())第三步:重新检查字体是否安装成功。接下来,就可以正常使用这个字体啦~