使用Seaborn画热力图,只有第一行单元格显示数值

文章讲述了在使用Seaborn绘制热力图时,遇到只有第一行单元格显示数字的问题,经排查发现是由于matplotlib版本过高导致。通过将matplotlib版本降级到3.7.3解决了这个问题,作者还提供了相关博客参考链接。
摘要由CSDN通过智能技术生成

一、发现问题

如图,可发现,用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博客

2、seaborn—sns.heatmap绘制热力图_sns.heatmap参数-CSDN博客

3、当前python第三方包版本太高,如何降低版本_pandas版本 降级 1.2.4-CSDN博客

  • 34
    点赞
  • 36
    收藏
    觉得还不错? 一键收藏
  • 21
    评论
评论 21
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值