findfont: Generic family ‘sans-serif‘ not found because none of the ...: SimHei

警告过程

python代码在使用matplotlib画图时,如果在title,xlabel,ylabel中出现了中文,则会出现字体警告,中文字符显示为方框

例如代码:

    # matplotlib画图
    # 设置色带
    plt.imshow(data, cmap=plt.cm.YlGn)  #颜色  
    # 添加色带
    plt.colorbar()
    # 用来正确显示中文
    plt.rcParams['font.sans-serif'] = ['SimHei']
    # 用来正确显示负号
    plt.rcParams['axes.unicode_minus'] = False
    # 添加标题
    plt.title('植被覆盖度')

警告显示如下:

生成图片如下:

解决方法

1.可以看到报错中**"missing from current font"**,即默认的字体中不包含中文字符

进入python虚拟环境:conda activate xxx(环境名)

查看matplotlib信息命令:

python
import matplotlib
print(matplotlib.matplotlib_fname())

2.进入字体文件夹下:

cd /home/hadoop/anaconda3/envs/xxx/lib/python3.9/site-packages/matplotlib/mpl-data/fonts

下载simhei.ttf字体放入字体文件夹下:

csdn - 安全中心

编辑matplotlibrc文件 /home/hadoop/anaconda3/envs/xxx/lib/python3.9/site-packages/matplotlib/mpl-data

vim
#按键i编辑

font.family         : sans-serif        
font.sans-serif     : SimHei, Bitstream Vera Sans, Lucida Grande, Verdana, Geneva, Lucid, Arial, Helvetica, Avant Garde, sans-serif 
axes.unicode_minus,将True改为False,作用就是解决负号'-'显示为方块的问题   


#按esc按键,:wq 退出并保存

修改前:

修改后:

修改前:

修改后:

3.最后删除缓存配置

cd /media/hadoop/.cache
rm -rf matplotlib

重新运行程序图形显示如下:

相关推荐
Hundreds_N1 分钟前
kali改回官方源后更新失败
linux·kali
wenpingyang8 分钟前
python学习2-数据结构与算法-链表
python·学习·链表
孤寒者8 分钟前
(三十一)Flask之wtforms库【剖析源码下篇】
后端·python·flask·源码剖析·wtforms
milong52112 分钟前
Flask自定义命令
后端·python·flask
东方佑15 分钟前
使用tkinter 制作工作流ui
前端·windows·笔记·python·ui·分类
knighthood200116 分钟前
flask中解决图片不显示的问题(很细微的点)
后端·python·flask
eclipsercp16 分钟前
《每天5分钟用Flask搭建一个管理系统》 第10章:前端集成
前端·python·flask
余子桃20 分钟前
Python获取QQ音乐歌单歌曲
开发语言·python
wenhui.wang25 分钟前
Linux/Ubuntu访问局域网共享文件夹
linux·ubuntu
q5673152326 分钟前
Python/Django 服务器升级脚本
服务器·开发语言·python·游戏·django