原因是字体导致的。大家的做法基本都是搞一个windows上的字体文件(simhei.ttf, 点我fq下载)然后刷新一下缓存文件。
只不过百度搜到第一篇CSDN的博客,写的很不靠谱(不是所有的CSDN都不靠谱,但是相当多的都不靠谱。)
靠谱的做法:
首先要明白,你用的是哪个matplotlib,是apt安装的python-matplotlib还是pip装的matplotlib,是python2的还是python3的?(以及,也许你是anaconda装的?)
找到你用的matplotlib包所使用的配置文件的方法,是终端输入如下代码:
>>> import matplotlib
>>> print matplotlib.matplotlib_fname()
/usr/local/lib/python2.7/site-packages/matplotlib/mpl-data/matplotlibrc
其中最后一行是结果,是用pip装的matplotlib。anyway,反正我是把apt装的python-matplotlib和python-pip这俩玩意儿都卸载了,不然太碍事。
然后是把下载的字体拷贝过到相应的字体目录下。所谓字体目录,就是根据前面得到的matplotlibrc文件目录的同一套的一个目录(嗯,配套的),例如/usr/local/lib/python2.7/dist-packages/matplotlib/mpl-data/fonts/ttf。
注意使用sudo来拷贝。
然后是清理字体缓存:
cd `/.cache/matplotlib
rm * -rf
现在肯定可以显示中文了。注意加u。