findfont: Font family ['sans-serif'] not found. Falling back to DejaVu Sans.

相信看到此篇文章的人都搜过了,很多解决办法都是下载字体,然后修改配置文件,然后没用。

我想说的是,matplotlib里其实有支持的中文字体,直接调用就行了。

查看matplotlib支持的字体:

%python
>>> from matplotlib.font_manager import FontManager
>>> fm = FontManager()
>>> mat_fonts = set(f.name for f in fm.ttflist)
>>> print(mat_fonts)

输出结果就是支持的所有字体。至于哪些字体可以显示中文可能需要尝试了。

比如我用过下面的这四个都可以:

plt.rcParams['font.sans-serif'] = ['Songti SC']
#or
plt.rcParams['font.sans-serif'] = ['Wawati TC']
#or
plt.rcParams['font.sans-serif'] = ['STHeiti']
#or
plt.rcParams['font.sans-serif'] = ['Arial Unicode MS']
Logo

CSDN联合极客时间,共同打造面向开发者的精品内容学习社区,助力成长!

更多推荐