解决Matplotlib绘制的图表不能正确显示中文

    解决这个问题有两种方法,一种方法是修改配置文件,这种方法一劳永逸,之后没必要担忧中文显示的问题(从新安装Matplotlib除外),另外一种方法是经过代码修改,比较局限,但步骤少点。
    先说一下前一种方法,也就是修改配置文件。(仅限于Ubuntu。)在个人系统中,这个文件的路径为/usr/local/lib/python3.4/dist-packages/matplotlib/mpl-data/matplotlibrc,或者你也能够用sudo find / -name matplotlibrc本身搜索出来。
1. 打开这个文件,先找到font.family,去掉这行开头的“#”
2. 再找到font.sans-serif,一样去掉“#”,而且在“:”以后添加系统中存在的中文字体。这里说一下怎么找系统中的中文字体,输入命令fc-list :lang=zh-cn,就能够看到系统中的中文字体了,我这里选用的字体是“FZHei-B01”(有这个字体,多是我装了WPS的缘故),你们对照这个形式,就知道其余中文字体的名字了。
3. 添加完字体名字,再找到axes.unicode_minus,去掉“#”,并把“True”改为“False”,这样就能够正常显示负号
    接下来讲一下后面那种编码解决的方法。首先你仍是要找中文字体,不过此次你要找中文字体文件,也就是“.ttf”,在我这里路径为“/usr/share/fonts”。找到路径文件,接下来就是写代码:html

from matplotlib.font_manager import FontProperties
font = FontProperties(fname="/usr/share/fonts/wps-office/FZWBK.TTF", size=15)
# 省略若干代码
ax.set_ylabel('分数', fontproperties=font)
plt.legend(prop=font)

前面找到的中文字体文件路径做为上面函数的参数,用于生成中文字体对象。python


参考:
python matplotlib中文显示问题
python中matplotlib绘图中文显示问题
ubuntu下matplotlib画图中文乱码问题
matplotlib图例中文显示问题web