matplotlib画注意力机制的图时,中文坐标不显示,与是加了下载中文字体的代码:
def get_matplot_zh_font():
fm = FontManager()
mat_fonts = set(f.name for f in fm.ttflist)
output = subprocess.check_output('fc-list :lang=zh -f "%{family}\n"', shell=True)
zh_fonts = set(f.split(',', 1)[0] for f in output.split('\n'))
available = list(mat_fonts & zh_fonts)
print( '*' * 10, '可用的字体', '*' * 10)
for f in available:
print(f)
return available
def set_matplot_zh_font():
available = get_matplot_zh_font()
if len(available) > 0:
mpl.rcParams['font.sans-serif'] = [available[0]] # 指定默认字体
mpl.rcParams['axes.unicode_minus'] = False # 解决保存图像是负号'-'显示为方块的问题
set_matplot_zh_font()
加了代码,运行时报了标题错误,
后修改了第5行:
output = subprocess.check_output('fc-list :lang=zh -f "%{family}\n"', shell=True).decode()
即对字符需要进行decode()解码,然后就成功运行了