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

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

相关推荐
小成2023032026522 分钟前
Linux高级02
linux·开发语言
mounter62523 分钟前
【硬核前沿】CXL 深度解析:重塑数据中心架构的“高速公路”,Linux 内核如何应对挑战?-- CXL 协议详解与 LSF/MM 最新动态
linux·服务器·网络·架构·kernel
知行合一。。。32 分钟前
Python--04--数据容器(总结)
开发语言·python
++==34 分钟前
Linux 进程间通信与线程同步技术详解:IPC 机制、线程 API、同步工具与经典同步问题
linux
架构师老Y36 分钟前
008、容器化部署:Docker与Python应用打包
python·容器·架构
特长腿特长1 小时前
centos、ubantu系列机的用户和用户组的结构是什么?具体怎么配置?用户组权限怎么使用?这篇文章持续更新,帮助你复习linux的基础知识
linux·运维·centos
zzzyyy5381 小时前
Linux环境变量
linux·运维·服务器
lifewange1 小时前
pytest-类中测试方法、多文件批量执行
开发语言·python·pytest
pluvium271 小时前
记对 xonsh shell 的使用, 脚本编写, 迁移及调优
linux·python·shell·xonsh
无级程序员1 小时前
centos7 安装 llvm-toolset-7-clang出错的问题解决
linux·centos