警告过程
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
重新运行程序图形显示如下: