一、发现问题
如图,可发现,用Seaborn画出来的热力图中,只有第一行单元格有数字,其他行单元格均不显示数字。
二、找出原因
首先排除了参数使用错误这一原因,因为在sns.heatmap函数中,我的annot这一参数使用的是"Ture",即单元格中显示数值。
sns.heatmap(wine_data_heat.corr() , annot = True,
xticklabels=x,
yticklabels=y)
后面在网上找了一些资料,发现是matplotlib版本过高的原因:matplotlib一直在更新,我现在使用是的matplotlib 3.8.2,而seaborn最新版本是在2023年4月更新的。
三、解决问题
我尝试将matplotlib的版本降低为3.7.3。
在cmd中执行命令行,查看当前版本:
pip show matplotlib
目前版本为3.8.2。
再执行命令行,将3.8.2版本删除,再安装旧版本3.7.3:
pip install -U matplotlib==3.7.3 -i https://pypi.tuna.tsinghua.edu.cn/simple
安装成功后,再重新画热力图,得到如下效果:
可见,每一个单元格中都能显示数值了。
参考博客:
1、【python】Seaborn画热力图,只显示第一行数字---seaborn与matplotlib版本问题_seaborn版本-CSDN博客