Python的matplotlib包在设计之初并未考虑到中文字体显示的问题,因此需要自己将中文字体加入到matplotlib字体文件夹中,解决用matplotlib画图不显示中文字的问题。

问题出现

Python包matplotlib中文显示存在问题,如图:
1.png
可以看到底下本来想显示“11点0分”的中文字体都不显示。
2.png

解决步骤

1. 下载字体

第一步,下载simhei.ttf字体(网络搜索直接有很多可供下载)。
我的下载字体过程参照了python ubuntu matplotlib 无法显示中文 中提到过程,供参考,下载解压后得到msyh.ttf文件。
接下来我这里就以msyh.ttf文件例子继续讲解。

2. 字体文件移入matplotlib字体文件夹

首先,找到matplotlib字体文件夹。方式是:打开python,用下列命令可以找到matplotlib的安装位置,如下图:

import matplotlib
print(matplotlib.__file__)

3.png

可见,我需要将msyh.ttf文件拷入/home/corina/.local/lib/python3.5/site-packages/matplotlib/mpl-data/fonts/ttf/里面,ubuntu可视化窗口操作如下:(因为我的是/.local/,我这里需要用ctrl+h将桌面可视化窗口中的隐藏文件显示出来)
4.png
依据上述路径找到ttf文件夹,复制进来,如图:
5.png

3. 删除matplotlib缓存文件

找到自己的缓存文件,可以在python中通过以下命令找到自己的matplotlib缓存文件夹,如下图:

import matplotlib
print(matplotlib.get_cachedir())

6.png
按路径找到了,删除它们,如下图:
7.png

4. 重启python

5. 使用pyplot画图之前加入命令

plt.rcParams['font.family'] = ['Microsoft YaHei']
plt.rcParams['axes.unicode_minus'] = False

如图:
8.png
以下就是解决后的效果啦:
9.png

后记

我查了很多方法,以上方式是不需要操作vi的。感谢很多IT小伙伴分享自己的经验。本文解决过程参见:python ubuntu matplotlib 无法显示中文