警告过程
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('植被覆盖度')
警告显示如下:
![](https://img-blog.csdnimg.cn/direct/2a965f42a7234e5c9c5b550274d6b2b1.png)
生成图片如下:
![](https://img-blog.csdnimg.cn/direct/b686ecfb57364c89823acf591d011bea.png)
解决方法
1.可以看到报错中**"missing from current font"**,即默认的字体中不包含中文字符
进入python虚拟环境:conda activate xxx(环境名)
查看matplotlib信息命令:
python
import matplotlib
print(matplotlib.matplotlib_fname())
![](https://img-blog.csdnimg.cn/direct/a72e342934a04f548d0a20382a18ebf7.png)
2.进入字体文件夹下:
cd /home/hadoop/anaconda3/envs/xxx/lib/python3.9/site-packages/matplotlib/mpl-data/fonts
下载simhei.ttf字体放入字体文件夹下:
![](https://img-blog.csdnimg.cn/direct/24be8be803724d91b91d6b60e7fc8eae.png)
编辑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 退出并保存
修改前:
![](https://img-blog.csdnimg.cn/direct/69a39eb5638043198a77f5de5b73473b.png)
修改后:
![](https://img-blog.csdnimg.cn/direct/ee03cdd679e346b8a58cf71f389dcc21.png)
修改前:
![](https://img-blog.csdnimg.cn/direct/052bf4bfb7454f8baefdc54a2a0e8cd7.png)
修改后:
![](https://img-blog.csdnimg.cn/direct/3f18dd6bbf0d4ad89b6ab642748a1bc9.png)
3.最后删除缓存配置
cd /media/hadoop/.cache
rm -rf matplotlib
重新运行程序图形显示如下:
![](https://img-blog.csdnimg.cn/direct/bd5c8b793f3a4efa9b417fe76b7b55ca.png)