matplotlib绘图中文显示小方格,网上一大堆方法要下载simhei.ttf字体,还要修改matplotlib设定balabalabala,我一步步照做了,结果,没用。
然后发现:
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']
其他的一些名称明显是拼音的应该也可以。
解决~
附:支持的所有字体:
{
'.Arabic UI Text', 'Weibei TC', 'Farah', 'Seravek', 'Lao MN', 'Gurmukhi MN',
'STIXVariants', 'Hiragino Maru Gothic Pro', 'Herculanum', 'Mishafi',
'Noto Sans Tai Tham', 'Big Caslon', 'SignPainter', 'Noto Sans Myanmar',
'Tiro Gurmukhi', 'Noto Sans Inscriptional Pahlavi', 'Bradley Hand',
'Noto Sans Buhid', 'Avenir Next', 'LiSong Pro', 'Zapfino', 'PSL Ornanong Pro',
'Kannada MN', '.SF NS Text Condensed', 'Shree Devanagari 714', 'Damascus',
'Noto Nastaliq Urdu', 'Noto Sans Gothic', 'Baloo Chettan'