Python的matplotlib包在设计之初并未考虑到中文字体显示的问题,因此需要自己将中文字体加入到matplotlib字体文件夹中,解决用matplotlib画图不显示中文字的问题。
问题出现
Python包matplotlib中文显示存在问题,如图:
可以看到底下本来想显示“11点0分”的中文字体都不显示。
解决步骤
1. 下载字体
第一步,下载simhei.ttf字体(网络搜索直接有很多可供下载)。
我的下载字体过程参照了python ubuntu matplotlib 无法显示中文 中提到过程,供参考,下载解压后得到msyh.ttf文件。
接下来我这里就以msyh.ttf
文件例子继续讲解。
2. 字体文件移入matplotlib字体文件夹
首先,找到matplotlib字体文件夹。方式是:打开python,用下列命令可以找到matplotlib的安装位置,如下图:
import matplotlib
print(matplotlib.__file__)
可见,我需要将msyh.ttf文件
拷入/home/corina/.local/lib/python3.5/site-packages/matplotlib/mpl-data/fonts/ttf/里面,ubuntu可视化窗口操作如下:(因为我的是/.local/,我这里需要用ctrl+h将桌面可视化窗口中的隐藏文件显示出来)
依据上述路径找到ttf文件夹,复制进来,如图:
3. 删除matplotlib缓存文件
找到自己的缓存文件,可以在python中通过以下命令找到自己的matplotlib缓存文件夹,如下图:
import matplotlib
print(matplotlib.get_cachedir())
按路径找到了,删除它们,如下图:
4. 重启python
5. 使用pyplot画图之前加入命令
plt.rcParams['font.family'] = ['Microsoft YaHei']
plt.rcParams['axes.unicode_minus'] = False
如图:
以下就是解决后的效果啦:
后记
我查了很多方法,以上方式是不需要操作vi的。感谢很多IT小伙伴分享自己的经验。本文解决过程参见:python ubuntu matplotlib 无法显示中文