Python seaborn绘制热力图

2024年3月13日

写在前面:有些讲的不清楚的地方,大家可以在官方网站上查看语法:Seaborn:统计数据可视化 — seaborn 0.13.2 文档 (pydata.org)

一般来说,我们使用python的一些库时,需要了解数据输入的格式,然后将自己的数据整理成我们使用的库需要的格式,这个是学会使用库最重要的!!

第一步:查看seaborn需要的数据格式。

import seaborn as sns

glue = sns.load_dataset("glue").pivot(index="Model", columns="Task", values="Score")
sns.heatmap(glue)

glue数据
结果图

说明列就是热力图的y轴,行为热力图的x轴。这里,我需要以1~12月设置为列,2000~2022年设置为行。因此,我的数据需要调整为如下所示的格式:

我使用的数据

第二步:输入自己的数据,并绘图。 

# 导入需要的库

import seaborn as sns

import pandas as pd

import os

# 导入数据

data = pd.read_csv('你的文件夹位置')

data = data.set_index('month') # 将index设置为month

ax = sns.heatmap(data) # 绘制热力图

# 这里需要注意:当你的文件输入时,文件的index不是month,这会导致程序报错:ValueError: could not convert string to float: 'Jan'

# 所以需要在这段代码之前将index设置为month

结果图

# 如果需要在热力图上标记数字,可以使用以下代码:

ax = sns.heatmap(data, annot=True)
# or 设置保留小数点的代码:
ax = sns.heatmap(data, annot=True, fmt='.1f')
带数字的结果图

第三步:设置坐标轴和颜色。大家可以选择自己喜欢的颜色。

c = sns.color_palette("Spectral", as_cmap=True) # seabron本身的颜色
ax = sns.heatmap(data, cmap=c)

# 或者自己设置颜色也可以,代码如下:

c=sns.color_palette("ch:s=.25,rot=-.25", as_cmap=True) 

结果1

ax = sns.heatmap(data, vmin=-0.01, vmax=1.25, cmap=c, 
                             cbar_kws={'label': 'days'}) # 设置图例最大值(vmax)和最小值(vmin)以及图例名称cbar_kws
ax.set(xlabel='Year', ylabel='Month') # 设置坐标轴title

结果2

上面的图字太小,将字体变大(结果3),代码如下: 

with sns.plotting_context("talk"):
        c = sns.color_palette("blend:#7AB,#EDA", as_cmap=True)
        ax = sns.heatmap(data, vmin=-0.01, vmax=1.25, cmap=c, 
                             cbar_kws={'label': 'days'})
        ax.set(xlabel='Year', ylabel='Month')

结果3
  • 34
    点赞
  • 21
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值