ubuntu下使用matplotlib绘图无法显示中文label

时间:2022-12-21 08:50:45

原因是字体导致的。大家的做法基本都是搞一个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。