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

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

相关推荐
Chenyu_3104 小时前
DPDK、TC 和 XDP:Linux 高性能网络到底在优化什么
linux·服务器·网络·缓存
信誓旦旦的程序猿4 小时前
【Python量化实战宝典 #08】可转债与债券接口手册:转股价·溢价率·纯债价值(Python 可跑)
java·python·股票数据api·股票数据api接口·股票api数据接口·股票量化数据api·股票量化数据接口
砚底藏山河4 小时前
python量化:行情数据回溯
java·开发语言·python·金融·maven
今年下半年4 小时前
AI智能体项目实战记录(02):初始化 Python 项目
开发语言·人工智能·python·fastapi
Williamtym4 小时前
PickGo Lab实践:用浏览器、Python和MCP串起机器人搬运仿真
开发语言·python·机器人
CS创新实验室5 小时前
Python 对象“死“了之后去了哪?——引用计数与分代垃圾回收
开发语言·jvm·python
CCblandy5 小时前
雪花 ID 四个边界实测:时钟回拨重号 500 个,前端 JSON.parse 直接丢精度
后端·python·算法·性能优化·架构
陈让然5 小时前
WSL 桥接设置静态IP(快速)
linux·网络·ubuntu
quantdash_cc5 小时前
Pandas 处理分钟级股票行情:从原始数据清洗到 K 线聚合
开发语言·python·数据分析·pandas·量化交易·股票数据·quantdash
乔旭伟5 小时前
Linux 服务器备份实战:一致性快照、日志归档与恢复演练
linux·运维·服务器