Ubuntu下matplotlib生成图片时中文显示乱码的情况处理(RuntimeWarning: Glyph 20915 missing from current font)

一、问题:在使用Python的matplotlib模块绘图时,中文字体显示乱码,如下图所示的一个个的小框框。
Ubuntu下matplotlib生成图片时中文显示乱码的情况处理(RuntimeWarning: Glyph 20915 missing from current font)_第1张图片

终端信息显示大致如下:
Ubuntu下matplotlib生成图片时中文显示乱码的情况处理(RuntimeWarning: Glyph 20915 missing from current font)_第2张图片
也就是找不到要用的字体。
网上搜索后,解决办法是:手动安装。。。。。。

二、好吧,那就手动安装吧
1.先下载中文字体,文件格式为ttf
(下载方法:可以直接百度ttf,就会有一些ttf字体下载网站,选一个下载就好了。我这里选择的是微软雅黑)
2.安装字体
a) 双击ttf字体文件进行安装;
b) 然后打开终端运行命令:

fc-list :lang=zh-cn

查看中文字体对应的配置名(位置大致如下,我的是Microsoft YaHei)
在这里插入图片描述
c) 复制下载的中文字体ttf文件(我的是msyh.ttf)到matplotlib的fonts/ttf目录。
i.具体的位置不同系统可能不一样,可以终端输入

sudo find / -name ttf

查看具体所在位置,我的如下:
在这里插入图片描述
ii.然后复制文件

sudo cp msyh.ttf /usr/share/matplotlib/mpl-data/fonts/ttf/msyh.ttf

3. 修改配置matplotlibrc文件
a) 具体位置寻找:

sudo find / -name matplotlibrc

在这里插入图片描述
b) 根据路径打开文件,修改配置项(默认是只读模式,可能需要增加可写权限:sudo chmod ugo+w matplotlibrc)
i. 找到font.family项,去除注释#,将字体改为添加的中文字体配置名,我的如下:
在这里插入图片描述

ii. 找到axes.unicode_minus项,去除注释#,将True改为False,我的如下:
在这里插入图片描述

4.清空matplotlib缓存使配置生效
终端:

rm ~/.cache/matplotlib –R

5.问题解决,再绘图中文显示出来了
Ubuntu下matplotlib生成图片时中文显示乱码的情况处理(RuntimeWarning: Glyph 20915 missing from current font)_第3张图片

你可能感兴趣的:(Python,python,ubuntu,乱码)