python ubuntu matplotlib 无法显示中文
博主最近很郁闷,因为在做NLP分析词向量的时候,一直想看看词向量训练的效果,但是在ubuntu16.04上使用matplotlib展示的时候发现无法显示中文。就像下图一样:
后来博主在网上查了很久,各种方法都试了,但是仍然没有用。于是博主决定自己尝试着弄。终于在我苦心尝试下,找到了一个好办法。
- 下载字体msyh.ttf,网址:http://www.linuxidc.com/Linux/2009-11/22691.htm 解压之后是msyh.ttf 文件
- 把上面的那个文件放在你的matplotlib字体文件夹,如果你找不到你的matplotlib安装文件夹,你可以先打开python,然后使用命令
import matplotlib
print(matplotlib.__file__)
就会输出你的matplotlib的安装位置,例如你的位置为/usr/local/lib/python3.5/dist-packages/matplotlib,那就把字体文件放在/usr/local/lib/python3.5/dist-packages/matplotlib/mpl-data/fonts/ttf/里面 - 删除matplotlib缓存文件夹内所有的东西。一般在~/.cache/matplotlib,如果你不知道在哪儿,打开python,使用以下命令就可以输出
import matplotlib
print(matplotlib.get_cachedir())
- 重点来了,上面的我不确定是否可以省略,但是这一步很关键,在你使用pyplot画图之前加入
plt.rcParams['font.family'] = ['Microsoft YaHei']
plt.rcParams['axes.unicode_minus'] = False
然后就可以很完美的导入中文了