Mac Python3 Matplotlib中文方框乱码解决方案


在macOS上,使用Python 3的绘图库Matplotlib,当输出中文时遇到方框形乱码。

造成Matplotlib中文乱码是因为Mac下没有SimHei字体库,需要下载SimHei字体,再配置Matplotlib。

如果我们找到Mac里支持中文的字体,然后在Matplotlib里设置为默认,也就不需要再下载了。

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

运行以上代码,可以发现Mac上有很多字体可供使用,我们找到Arial Unicode MS,设置为Matplotlib的默认字体即可。我们更改Matplotlib的默认字体:

import matplotlib.pyplot as plt

plt.rcParams['font.sans-serif'] = ['Arial Unicode MS']

通过以上两行代码,不用其他任何修改,即可正常显示中文。