python生成热度图_Python如何实现热力图?可视化入库图实战演示

本文的文字及图片来源于网络,仅供学习、交流使用,不具有任何商业用途,版权归原作者所有,如有问题请及时联系我们以作处理。

前言

用函数以及相关参数解析

seaborn.heatmap(

data,

vmin=None, vmax=None,

cmap=None,

center=None,

robust=False,

annot=None,

fmt=’.2g’,

annot_kws=None,l

inewidths=0,

linecolor=’white’,

cbar=True,

cbar_kws=None,

cbar_ax=None,

square=False,

xticklabels=’auto’, yticklabels=’auto’,

mask=None,

ax=None,

**kwargs)

vmin=None,vmax=None, # 分别是热力图的颜色取值最大和最小范围,默认是根据data数据表里的取值确定

cmap=None, # 设置颜色

center=None,# 数据表取值有差异时,设置热力图的色彩中心对齐值;通过设置center值,可以调整生成的图像颜色的整体深浅;设置center数据时,如果有数据溢出,则手动设置的vmax、vmin会自动改变

robust=False, #默认取值False;如果是False,且没设定vmin和vmax的值,热力图的颜色映射范围根据具有鲁棒性的分位数设定,而不是用极值设定

annot=None, #默认取值False;如果是True,在热力图每个方格写入数据;如果是矩阵,在热力图每个方格写入该矩阵对应位置数据

fmt=’.2g’, #字符串格式代码,矩阵上标识数字的数据格式,比如保留小数点后几位数字

annot_kws=None,# annot为True时,设置显示数字的颜色、大小、位置等。

linewidths=0, #定义热力图里“表示两两特征关系的矩阵小块”之间的间隔大小

linecolor=’white’, #切分热力图上每个矩阵小块的线的颜色,默认值是’white’

cbar=True, #是否在热力图侧边绘制颜色刻度条,默认值是True

cbar_kws=None, #热力图侧边绘制颜色刻度条时,相关字体设置,默认值是None

cbar_ax=None, #热力图侧边绘制颜色刻度条时,刻度条位置设置,默认值是None

square=False, #设置热力图矩阵小块形状,默认值是False

xticklabels=’auto’, yticklabels=’auto’, #控制每列/行标签名的输出

mask=None, #覆盖某些数据

ax=None, #设置作图的坐标轴,一般画多个子图时需要修改不同的子图的该值

ca213076e9584c578412f45ae85b0622

实操部分

1、载入相关库

df = pd.DataFrame(np.random.uniform(-1, 1, size=(5, 5)))

2、生成随机DataFrame(array也可以,不过我更喜欢用DataFrame)

df = pd.DataFrame(np.random.uniform(-1, 1, size=(5, 5)))

7b2a4a4e14024ea8af5a25fc6786a04e

3、默认参数画热力图

sns.heatmap(df)

ff173f6cf5474fc6a5044c9b5e9ce92f

4、改变图形颜色

sns.heatmap(df,cmap='Blues')

5b6872060e804b4a9b0d300188d13e17

5、改变颜色取值范围(与图1对比)

因为数据范围是-1到1,所以增大颜色取值范围,图表呈现的颜色会很相近。

sns.heatmap(df,vmax=5,vmin=-5) #

9aa8684a73404c1c832eed77e55eae20

6、设置热力图的色彩中心对齐值

sns.heatmap(df,center=-0.8)

313e0ea5d85e4819aec0fe75592b145e

7、往格子里写入数据,并设置字体、颜色等

sns.heatmap(df, annot=True, annot_kws={'size':8,'weight':'bold', 'color':'blue'})

babc9c960ba84c4da3b2d5716ad743f2

8、设置数字显示保留几位小数点

sns.heatmap(df,annot=True,fmt='.1f') #这里设置保留一位小数点

e5deb383ed534afb9e5012320216f840

9、用mask覆盖某些数据

sns.heatmap(df, annot=True, mask = df<0) #覆盖小于0的数据

25aea452b0274c619829e7fb8be0bfe9

10、制相关系数矩阵时,可以按下面代码绘制一半

mask = np.zeros_like(df) #设置0矩阵

mask[np.triu_indices_from(mask)]= True #把矩阵上部分设置为1#mask[np.tril_indices_from(mask)] = True #把矩阵下部分设置为1

#设置为1 的单元格将不再显示

with sns.axes_style("white"):

ax= sns.heatmap(df, mask=mask)

32b6a560ea5945e98dae6862d581c666

11、设置画布大小,分辨率,并保存图片

lt.subplots(figsize = (5,5),dpi=150)#用mask覆盖某些数据

sns.heatmap(df,annot=True) #覆盖小于0的数据

#保存图片

plt.savefig("热力图.png")

b3500f00d3ae47129f3c1998fbb66a41

以上文章来源于php中文网,作者 零到壹度

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值