前言
Matplotlib中的有些字体是不支持中文的,所以需要对其进行指定可以支持中文的字体。
本文参考:http://zhishichong.com/article/107996
正文
查询可用字体
linux命令查询中文可用字体
>fc-list :lang=zh -f "%{family}\n"
Source Han Serif SC,思源宋体,Source Han Serif SC ExtraLight,思源宋体 ExtraLight
Source Han Serif SC,思源宋体,Source Han Serif SC Light,思源宋体 Light
Source Han Serif SC,思源宋体,Source Han Serif SC Medium,思源宋体 Medium
Source Han Serif SC,思源宋体
python代码
from matplotlib.font_manager import FontManager
import subprocess
fm = FontManager()
# 列出所有ttf字体
mat_fonts = set(f.name for f in fm.ttflist)
# 列出系统支持的中文字体
output = subprocess.check_output('fc-list :lang=zh -f "%{family}\n"', shell=True)
output = set([x.split(",", 1)[0] for x in output.decode().split('\n')])
# 输出可用的中文字体
print(mat_fonts & output)
加载本地可用字体
font_path = './fonts/[思源黑体_Heavy]SourceHanSansSC-Heavy-2.otf'
axs[x][y].set_title(title, fontsize=13,fontproperties=fm.FontProperties(fname=font_path))