第一步:下载字体:msyh.ttf (微软雅黑)
放在系统字体文件夹下:
/usr/share/fonts
同时我也复制了下放在matplotlib的字体文件夹下了(不知道这一步是不是必须)
/usr/local/lib/python3.5/dist-packages/matplotlib/mpl-data/fonts/ttf/
第二步:修改matplotlib配置文件:
sudo vim /usr/local/lib/python3.5/dist-packages/matplotlib/mpl-data/matplotlibrc
删除font.family和font.sans-serif两行前的#,并在font.sans-serif后添加中文字体
Microsoft YaHei, ...(其余不变)
第三步:删除~/.cache/matplotlib下文件fontList.py3k.cache
重启python即可
另外:可以执行下这段程序--可以打印出可用的字体:
#! /usr/bin/env python
# -*- coding: utf-8 -*-
from matplotlib.font_manager import FontManager
import subprocess
fm = FontManager()
mat_fonts = set(f.name for f in fm.ttflist)
#print(mat_fonts)
output = subprocess.check_output('fc-list :lang=zh -f "%{family}\n"', shell=True)
#print( '*' * 10, '系统可用的中文字体', '*' * 10)
#print (output)
zh_fonts = set(f.split(',', 1)[0] for f in output.decode('utf-8').split('\n'))
available = mat_fonts & zh_fonts
print ('*' * 10, '可用的字体', '*' * 10)
for f in available:
print (f)
本文详细介绍了如何在Matplotlib中正确显示中文,包括下载并安装微软雅黑字体,修改matplotlib配置文件,以及更新字体缓存的方法。此外,还提供了一段Python代码,用于检查系统中可用的中文字体。
1万+

被折叠的 条评论
为什么被折叠?



