python画热力图(相关系数矩阵图)

14 篇文章 1 订阅
8 篇文章 1 订阅

reference:https://blog.csdn.net/a19990412/article/details/79304944

用seaborn包画

plt.subplots(figsize=(9, 9))设置画面大小,会使得整个画面等比例放大的
sns.heapmap()这个当然是用来生成热力图的啦
df是DataFrame, pandas的这个类还是很常用的啦~
df.corr()就是得到这个dataframe的相关系数矩阵
把这个矩阵直接丢给sns.heapmap中做参数就好啦
sns.heapmap中annot=True,意思是显式热力图上的数值大小。
sns.heapmap中square=True,意思是将图变成一个正方形,默认是一个矩形
sns.heapmap中cmap="Blues"是一种模式,就是图颜色配置方案啦,我很喜欢这一款的。
sns.heapmap中vmax是显示最大值

# -*- coding: UTF-8 -*-
import seaborn as sns
import numpy as np
import pandas as pd
import matplotlib.pyplot as plt

# a = np.random.rand(4,3)

a = np.array([[1,0.107562,0.270034,0.266753],
              [0.107562,1,0.543716,0.540923],
              [0.270034,0.543716,1,0.950266],
              [0.266753,0.540923,0.950266,1]])

fig, ax = plt.subplots(figsize = (9,9))
#二维的数组的热力图,横轴和数轴的ticklabels要加上去的话,既可以通过将array转换成有column
#和index的DataFrame直接绘图生成,也可以后续再加上去。后面加上去的话,更灵活,包括可设置labels大小方向等。
sns.heatmap(pd.DataFrame(np.round(a,2), columns = ['img0', 'img1', 'img2','img3'], index = ['img0', 'img1', 'img2','img3']),
                annot=True, vmax=1,vmin = 0, xticklabels= True, yticklabels= True, square=True, cmap="Blues")
#sns.heatmap(np.round(a,2), annot=True, vmax=1,vmin = 0, xticklabels= True, yticklabels= True,
#            square=True, cmap="YlGnBu")
# ax.set_title('二维数组热力图', fontsize = 18)
ax.set_ylabel('image', fontsize = 18)
ax.set_xlabel('iamge', fontsize = 18) #横变成y轴,跟矩阵原始的布局情况是一样的
plt.savefig('./out.png')
plt.show()

在这里插入图片描述

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值