linux 环境下matplotlib 画图时不支持中文解决方案
Posted 丘文波
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了linux 环境下matplotlib 画图时不支持中文解决方案相关的知识,希望对你有一定的参考价值。
linux 环境下matplotlib 画图时不支持中文解决方案
1. 代码上设置一下你需要使用的代码
import matplotlib.pyplot as plt
plt.rcParams['font.sans-serif'] = ['SimHei'] # 使用黑体来正常显示中文标签
plt.rcParams['axes.unicode_minus'] = False # 用来正常显示负号
如果通过上面的设置成功显示中文就最nice了,但如果上面设置之后,还是会报错
Font family [‘sans-serif’] not found.Falling back to DejaVu Sans
2. 检查是否缺少字体
该错误说明很大概率是缺少了SimHei这种字体,可以通过如下方式查看matplotlib中已有字体有哪些
import matplotlib.pyplot as plt
from matplotlib import font_manager
for font in font_manager.fontManager.ttflist:
# 查看字体名以及对应的字体文件名
print(font.name, '-', font.fname)
查看一下全部字体名称,看一下你需要使用的字体名称是否在其中,如果不在其中就需要进行添加。
matplotlib的字体来自两个部分,一个是matplotlib自带的字体,还有一个是系统自带的字体。
注意:字体名称和字体文件名是两个不同概念,比如上图中微软雅黑的字体名称叫“Microsoft YaHei” 但是其字体文件名叫“wryh.ttf”.
在代码中进行设置的时候,需要使用字体名称
3. 下载字体文件并放到系统字体目录下
可以从该地址下载黑体字体文件
可以自己在网上下载黑体字体“SimHei”对应的文件,然后添加到系统字体所在目录。系统字体所在目录可以通过命令 “fc list”知道
将黑体字体文件放进去系统字体目录:
再执行一下代码就可以看到字体已经加进去
import matplotlib.pyplot as plt
from matplotlib import font_manager
for font in font_manager.fontManager.ttflist:
# 查看字体名以及对应的字体文件名
print(font.name, '-', font.fname)
5.生效
删除一下之前的旧缓存来生成新的缓存
# python 终端获取缓存路径
import matplotlib
print(matplotlib.get_cachedir())
# /root/.cache/matplotlib
删除缓冲目录
rm -rf /root/.cache/matplotlib
最后运行一下你的代码,就可以正常显示中文字体了。
参考博客
matplotlib对中文的支持(Font family [‘sans-serif’] not found.Falling back to DejaVu Sans)
以上是关于linux 环境下matplotlib 画图时不支持中文解决方案的主要内容,如果未能解决你的问题,请参考以下文章
linux 环境下matplotlib 画图时不支持中文解决方案