Python生成相关性热力图简单示例

近日研究一下热力图,参考一些博主代码做了一些优化,实现矩阵的下三角显示,代码如下:

import seaborn as sns
import numpy as np
import pandas as pd
import matplotlib.pyplot as plt

print("========================================================================")
data = pd.DataFrame([[1, 6, 7, 5, 1], [2, 10, 8, 3, 4], [3, 4, 0, 10, 2]], columns=['val1', 'val2', 'val3', 'val4', 'val5'])
print(data)

print("========================================================================")
corrmat = data.corr()  # 返回一个相关系数矩阵,默认是皮尔逊系数(计算线性相关的数据),
# 非线性相关数据可采用
# kendall:这个参数用于计算肯德尔相关系数,可以度量两个变量之间的顺序关系,它可以处理非线性数据,但是它不能处理缺失值
# spearman:这个参数用于计算斯皮尔曼相关系数。斯皮尔曼相关系数主要用于度量两个变量之间的相关性,它也可以处理非线性数据,但是它不能处理缺失值
print(corrmat)

print("========================================================================")
mask = np.zeros(corrmat.shape, dtype=bool)  # corrmat.shape 是 corrmat的行数和列数,np.zeros根据这个行列数生成一个bool类型矩阵
print(mask)

print("========================================================================")
print(np.triu_indices_from(mask))  # 获取矩阵上三角的下标

print("========================================================================")
mask[np.triu_indices_from(mask)] = True  #将上三角的值设为true
print(mask)

# sns.heatmap(data.corr(), linewidths=0.1, vmax=1.0, square=True, linecolor='white', annot=True)
# plt.show()

# 隐藏上三角的写法
# mask:数组,隐藏为true的数据;annot:单元格内显示数据
# 'linewidths'参数控制单元格之间的间隔大小,数值越大,间隔越宽;
# 'vmax'参数用于设定颜色映射的最大值,值越大,颜色越偏向暖色调
# linecolor:线条颜色
# cmap:指定指定颜色映射
sns.heatmap(data.corr(), mask=mask, linewidths=2, vmax=1, square=True, linecolor='white', annot=True, cmap='coolwarm')
plt.show()

效果:
在这里插入图片描述

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值