当前位置:   article > 正文

matlab 在图片上绘制热力图_python可视化之seaborn——热力图

如何在一张图片上覆盖一个热力图

所用函数以及相关参数解析

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, #设置作图的坐标轴,一般画多个子图时需要修改不同的子图的该值 

实操部分


1、载入相关库

import pandas as pdimport numpy as npimport matplotlib.pyplot as pltimport seaborn as sns# 解决中文不显示的问题from pylab import mplmpl.rcParams['font.sans-serif']=['SimHei']# 解决正负号不显示问题plt.rcParams['axes.unicode_minus']=False 

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

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

c910f13bcdb91605e9f5703fe55746b3.png

3、默认参数画热力图

sns.heatmap(df)

dc09faf78273457323d13946a30946b5.png

图 1

4、改变图形颜色

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

f41d9a88a592a2834176610fb1dfc653.png

图 2

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

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

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

d342f52bd98394ea231a5e33b680ebae.png

图 3

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

sns.heatmap(df,center=-0.8)

647e167822b7fdb9af742a032911c069.png

图 4

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

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

8ab66a14937d6880c1e0faf25e41647a.png

图 5

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

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

8a97910198874bafdf7fde1a05e26438.png

图 6

9、用mask覆盖某些数据

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

4acc786aef98d5520148777a2168353d.png

图 7

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)

a2f7525b37ff15da81f6427b96054aaa.png

图 8

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

plt.subplots(figsize = (5,5),dpi=150)# 用mask覆盖某些数据sns.heatmap(df,annot=True) # 覆盖小于0的数据# 保存图片plt.savefig("热力图.png")

f1f78d235894144cba437c8eb01f8786.png

图 9

参考:https://www.php.cn/python-tutorials-391565.html

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/很楠不爱3/article/detail/660607
推荐阅读
相关标签
  

闽ICP备14008679号