【PYTHON】绘制热力图SEABORN.HEATMAP

news2025/1/13 9:39:19

目录

  • 一、参数详解
  • 二、颜色参数-cmap
    • 三、个性化设置
      • 四、代码

更多python资料、源码、教程皆可点击文章下方名片获取此处跳转

一、参数详解

seaborn.heatmap()

seaborn.heatmap(data, vmin=None, vmax=None, cmap=None, center=None, robust=False, annot=None, fmt=‘.2g’, annotkws=None, linewidths=0, linecolor=‘white’, cbar=True, cbarkws=None, cbar_ax=None, square=False, ax=None, xticklabels=True, yticklabels=True, mask=None, **kwargs)

data:矩阵数据集,可以使numpy的数组(array),如果是pandas的dataframe,则df的index/column信息会分别对应到heatmap的columns和rows
vmax,vmin, 图例中最大值和最小值的显示值,没有该参数时默认不显示
linewidths,热力图矩阵之间的间隔大小
cmap,热力图颜色
ax,绘制图的坐标轴,否则使用当前活动的坐标轴。
annot,annotate的缩写,annot默认为False,当annot为True时,在heatmap中每个方格写入数据。
annot_kws,当annot为True时,可设置各个参数,包括大小,颜色,加粗,斜体字等:
sns.heatmap(x, annot=True, ax=ax2, annot_kws={'size':9,'weight':'bold', 'color':'blue'}) 
fmt,格式设置,决定annot注释的数字格式,小数点后几位等;
cbar : 是否画一个颜色条
cbar_kws : 颜色条的参数,关键字同 fig.colorbar,可以参考:matplotlib自定义colorbar颜色条-以及matplotlib中的内置色条。

mask,遮罩
  1. 先用sns.set(font_scale)修改字体比例:
sns.set(font_scale=1.5)
  1. 再用plt.rc对全图字体进行统一修改:
plt.rc('font',family='Times New Roman',size=12)

二、颜色参数-cmap

cmap的参数如下:

Accent, Accent_r, Blues, Blues_r, BrBG, BrBG_r, BuGn, BuGn_r, BuPu, BuPu_r, CMRmap, CMRmap_r, Dark2, Dark2_r, GnBu(绿到蓝), GnBu_r, Greens, Greens_r, Greys, Greys_r, OrRd(橘色到红色), OrRd_r, Oranges, Oranges_r, PRGn, PRGn_r, Paired, Paired_r, Pastel1, Pastel1_r, Pastel2, Pastel2_r, PiYG, PiYG_r, PuBu, PuBuGn, PuBuGn_r, PuBu_r, PuOr, PuOr_r, PuRd, PuRd_r, Purples, Purples_r, RdBu, RdBu_r, RdGy, RdGy_r, RdPu, RdPu_r, RdYlBu, RdYlBu_r, RdYlGn, RdYlGn_r, Reds, Reds_r, Set1, Set1_r, Set2, Set2_r, Set3, Set3_r, Spectral, Spectral_r, Wistia(蓝绿黄), Wistia_r, YlGn, YlGnBu, YlGnBu_r, YlGn_r, YlOrBr, YlOrBr_r, YlOrRd(红橙黄), YlOrRd_r, afmhot, afmhot_r, autumn, autumn_r, binary, binary_r, bone, bone_r, brg, brg_r, bwr, bwr_r, cividis, cividis_r, cool, cool_r, coolwarm(蓝到红), coolwarm_r, copper(铜色), copper_r, cubehelix, cubehelix_r, flag, flag_r, gist_earth, gist_earth_r, gist_gray, gist_gray_r, gist_heat, gist_heat_r, gist_ncar, gist_ncar_r, gist_rainbow, gist_rainbow_r, gist_stern, gist_stern_r, gist_yarg, gist_yarg_r, gnuplot, gnuplot2, gnuplot2_r, gnuplot_r, gray, gray_r, hot, hot_r(红黄), hsv, hsv_r, icefire, icefire_r, inferno, inferno_r, jet, jet_r, magma, magma_r, mako, mako_r, nipy_spectral, nipy_spectral_r, ocean, ocean_r, pink, pink_r, plasma, plasma_r, prism, prism_r, rainbow, rainbow_r, rocket, rocket_r, seismic, seismic_r, spring, spring_r, summer (黄到绿), summer_r (绿到黄), tab10, tab10_r, tab20, tab20_r, tab20b, tab20b_r, tab20c, tab20c_r, terrain, terrain_r, twilight, twilight_r, twilight_shifted, twilight_shifted_r, viridis, viridis_r,vlag, vlag_r, winter, winter_r

示范如下:
cmap=“hot”:黄色到红色,数字越大,颜色越浅
在这里插入图片描述

cmap=“OrRd”:深红色到浅红色,类似“Oranges”。

在这里插入图片描述
cmap=“greys”:灰色

在这里插入图片描述
cmap=“gist_rainbow”:彩虹色
在这里插入图片描述

将colormap置于特定值的中心(参考链接):

>>> ax = sns.heatmap(flights, center=flights.loc["January", 1955])

在这里插入图片描述
使用遮罩绘制矩阵中的一部分

>>> corr = np.corrcoef(np.random.randn(10, 200))

>>> mask = np.zeros_like(corr)

>>> mask[np.triu_indices_from(mask)] = True

>>> with sns.axes_style("white"):

... ax = sns.heatmap(corr, mask=mask, vmax=.3, square=True)

np.zeros_like() 返回一个零数组,其形状和类型与给定的数组相同;

np.triu_indices_from(mask) 返回数组上三角形的索引。
在这里插入图片描述
以下是一些网络上发现的配色好看的图:

# cmap用cubehelix map颜色

cmap = sns.cubehelix_palette(start = 1.5, rot = 3, gamma=0.8, as_cmap = True)

sns.heatmap(pt, linewidths = 0.05, ax = ax1, vmax=900, vmin=0, cmap=cmap)

在这里插入图片描述

# cmap用matplotlib colormap

sns.heatmap(pt, linewidths = 0.05, ax = ax2, vmax=900, vmin=0, cmap='rainbow')

在这里插入图片描述

#center的用法(颜色)

f, (ax1,ax2) = plt.subplots(figsize = (6, 4),nrows=2)

cmap = sns.cubehelix_palette(start = 1.5, rot = 3, gamma=0.8, as_cmap = True)

sns.heatmap(pt, linewidths = 0.05, ax = ax1, cmap=cmap, center=None )

在这里插入图片描述

#设置x轴图例为空值ax1.set_ylabel('kind')

# 当center设置小于数据的均值时,生成的图片颜色要向0值代表的颜色一段偏移

sns.heatmap(pt, linewidths = 0.05, ax = ax2, cmap=cmap, center=200)  

### 三级目录

#robust的用法(颜色)

f, (ax1,ax2) = plt.subplots(figsize = (6,4),nrows=2)

cmap = sns.cubehelix_palette(start = 1.5, rot = 3, gamma=0.8, as_cmap = True)

sns.heatmap(pt, linewidths = 0.05, ax = ax1, cmap=cmap, center=None, robust=False )
sns.heatmap(pt, linewidths = 0.05, ax = ax2, cmap=cmap, center=None, robust=True ) 
#mask对某些矩阵块的显示进行覆盖

p2 = sns.heatmap(pt, ax=ax2, cmap=cmap, xticklabels=True, mask=(pt<800))  

#mask对pt进行布尔型转化,结果为True的位置用白色覆盖

在这里插入图片描述

用mask实现:突出显示某些数据
sns.heatmap(x, mask=x < 1, ax=ax2, annot=True, annot_kws={“weight”: “bold”}) #把小于1的区域覆盖掉

在这里插入图片描述

三、个性化设置

将x轴刻度放置在top位置的几种方法

# 将x轴刻度放置在top位置的几种方法

# ax.xaxis.set_ticks_position(‘top‘)

ax.xaxis.tick_top()

# ax.tick_params(axis=‘x‘,labelsize=6, colors=‘b‘, labeltop=True, labelbottom=False)

设置坐标轴刻度参数,”axis”不写的时候,默认是x轴和y轴的参数同时调整。

# 设置坐标轴刻度的字体大小

# matplotlib.axes.Axes.tick_params

ax.tick_params(axis=‘y‘,labelsize=8) # y轴

旋转轴刻度上文字方向的两种方法

# 旋转轴刻度上文字方向的两种方法

ax.set_xticklabels(ax.get_xticklabels(), rotation=-90)

# ax.set_xticklabels(corr.index, rotation=90)

四、代码

'''
深入挖掘
'''
font = {'family': 'Times New Roman',
        'size': 12,
        }
sns.set(font_scale=1.2)
plt.rc('font',family='Times New Roman')
 
 
fig = plt.figure(figsize = (16, 12))
ax1=fig.add_subplot(2,1,1)
cor = SubShowFeatures01.corr()
mask = np.zeros_like(cor)
for i in range(len(mask)):
    for j in range(i+1, len(mask[0])):
        mask[i][j] = True
 
sns.heatmap(cor,linewidths = 0.05, ax=ax1, mask=mask, annot=True, annot_kws=font, vmax=1.0, vmin=-1.0, cmap='YlGnBu', center=0.5, 
            cbar=True, robust=False)
ax1.set_title('User metric features', fontdict=font)
 
ax2=fig.add_subplot(2,1,2)
SubShowFeatures02 = pd.DataFrame({"Label":FerFeatures.Label, "PEM":FerFeatures.PEM, "PVAL":FerFeatures.PVAL, "NVAL":FerFeatures.NVAL, 
                            "NEM":FerFeatures.NEM, "DEP":FerFeatures.DEP, "AGR":FerFeatures.AGR, "CONV":FerFeatures.CONV,
                            "Cold":FerFeatures.Cold, "Warm":FerFeatures.Warm, "Pleasure":FerFeatures.Pleasure, 
                            "Arousal":FerFeatures.Arousal, "Dominance":FerFeatures.Dominance                         
                           })
cor = SubShowFeatures02.corr()
mask = np.zeros_like(cor)
for i in range(len(mask)):
    for j in range(i+1, len(mask[0])):
        mask[i][j] = True
sns.heatmap(cor,linewidths = 0.05, ax=ax2, mask=mask, annot=True, annot_kws=font, vmax=1.0, vmin=-1.0, cmap='YlOrRd', center=0)
ax2.set_title('User personality features', fontdict=font)
 
plt.show()

请添加图片描述

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/501771.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

又一里程碑,alibaba首推Java技术成长笔记,业内评级“钻石级”

前言 根据数据表明&#xff0c;阿里巴巴已经连续3年获评最受欢迎的中国互联网公司&#xff0c;实际上阿里巴巴无论在科技创新力还是社会创造价值这几个方面&#xff0c;都是具有一定代表里的。在行业内&#xff0c;很多互联网企业也将阿里作为自己的标杆&#xff0c;越来越多的…

智慧厕所引导系统的应用

智慧公厕引导系统是一种基于智能化技术的公厕管理系统&#xff0c;可以为如厕者提供更加便捷、舒适、安全的如厕环境和服务&#xff0c;同时也可以引导如厕者文明如厕&#xff0c;营造文明公厕的氛围。智慧公厕引导系统可以通过智能引导屏、手机小程序等方式&#xff0c;为如厕…

Spring Security OAuth2.0(四)-----OAuth2+JWT

传统的通过 session 来记录用户认证信息的方式我们可以理解为这是一种有状态登录&#xff0c;而 JWT 则代表了一种无状态登录。「无状态登录天然的具备单点登录能力」 1. 无状态登录 1.1 什么是有状态 有状态服务&#xff0c;即服务端需要记录每次会话的客户端信息&#xff…

asp.net+sqlserver房屋中介管理信息系统

据信息处理工作量大时容易出错&#xff1b;数据繁多时&#xff0c;容易丢失&#xff0c;且不易查找&#xff0c;出错后又不易修改。 基于以二、系统主要划分为房屋和客户两种角色。主要功能划分为&#xff1a;客户管理&#xff0c;房屋管理和交易管理三大块。其中&#xff1a;…

JVM系列-第5章-堆(JVisualVM)

堆 堆的核心概述 堆与进程 堆针对一个JVM进程来说是唯一的。也就是一个进程只有一个JVM实例&#xff0c;一个JVM实例中就有一个运行时数据区&#xff0c;一个运行时数据区只有一个堆和一个方法区。 但是进程包含多个线程&#xff0c;他们是共享同一堆空间的。 一个JVM实例…

Introduction to modern Cryptography 现代密码学原理与协议第二章笔记

M表示明文空间&#xff0c;K表示密钥空间&#xff0c;C表示所有可能的密文集合 完善保密加密的概念: 简化约定&#xff0c;不再特殊声明&#xff0c;除数为0无意义 完全保密加密的等价公式: 证明: 必要性证明略&#xff0c;此证明为条件概率的简单应用 完全不可区分性: 完善保密…

PCL学习八:Keypoints-关键点

参考引用 Point Cloud Library黑马机器人 | PCL-3D点云 1. 引言 关键点也称为兴趣点&#xff0c;它是 2D 图像或 3D 点云或曲面模型上,可以通过检测标准来获取的具有稳定性、区别性的点集。从技术上来说&#xff0c;关键点的数量比原始点云或图像的数据量少很多&#xff0c;其与…

外译笔记 | 比尔盖茨:AI与智能手机和互联网一样具有革命性 | 京东云技术团队

3月21号&#xff0c;微软创始人比尔盖茨&#xff0c;在盖茨笔记中&#xff0c;发表最新AI文章《人工智能时代已经开始——人工智能与智能手机、互联网一样具有革命性》&#xff0c;文章中表示&#xff1a;自1980年首次看到图形用户界面&#xff08;graphical user interface&am…

使用awvs对网站进行扫描

前言&#xff1a;由于领导要求生成好看的漏洞扫描报告来发送给甲方&#xff0c;因此放弃了xray xray的简单使用 一、首先下载并安装相应的工具 访问此网址观看相应操作系统视频进行安装、有安装包更新记得及时更新 https://www.iculture.cc/software/pig35126 二、开始扫描 …

软考A计划-重点考点-专题一(计算机系统知识)

点击跳转专栏>Unity3D特效百例点击跳转专栏>案例项目实战源码点击跳转专栏>游戏脚本-辅助自动化点击跳转专栏>Android控件全解手册点击跳转专栏>Scratch编程案例 &#x1f449;关于作者 专注于Android/Unity和各种游戏开发技巧&#xff0c;以及各种资源分享&am…

【读书笔记】次第花开——安抚内心平静的宝藏书

种草许久的书&#xff0c;终于在合适的时间点读上了。还是从樊登老师那里了解到的&#xff0c;我本身是对佛法没有太深的理解和概念&#xff0c;但总感觉在这浮躁的社会需要一些理念支撑让人能沉静下来的。信仰对我还很陌生&#xff0c;但次第花开读起来真的让人舒服&#xff0…

3.Docker实用技术

Docker实用篇 0.学习目标 1.初识Docker 1.1.什么是Docker 微服务虽然具备各种各样的优势&#xff0c;但服务的拆分通用给部署带来了很大的麻烦。 分布式系统中&#xff0c;依赖的组件非常多&#xff0c;不同组件之间部署时往往会产生一些冲突。在数百上千台服务中重复部署…

看电商数据,用api接口数据

看渠道&#xff0c;看行业&#xff0c;看竞品很方便&#xff0c;不用拉一堆品牌比较&#xff0c;我看整体的时候很直接&#xff0c;谁最近数据好销量高一目了然&#xff0c;我也能做出反应和调整。 深圳电商运营中心 看历史数据的功能&#xff0c;极大满足了我不断总结复盘的习…

洗稿伪原创工具-洗稿生成器

chatgpt快速洗稿一篇文章 做自媒体创作的人都知道&#xff0c;文案创作是一件十分耗时间和精力的事情&#xff0c;而且要做好一篇文章&#xff0c;还需要考虑排版、语法和语气等问题。为了让自媒体写作更简单、更快速&#xff0c;我们推出了一款名为ChatGPT的快速洗稿软件&…

Java ---多线程

&#xff08;一&#xff09;目录 多线程介绍 线程的创建 线程的使用 线程的优先级 守护线程 线程同步 线程并发协作 &#xff08;二&#xff09;多线程介绍 1.多线程的基本概念 程序 “程序(Program)”是一个静态的概念&#xff0c;一般对应于操作系统中的一个可执行文…

openpnp - Smoothieware project debug

文章目录 openpnp - Smoothieware project debug概述笔记记录一下工程中, 和调试相关的资料备注END openpnp - Smoothieware project debug 概述 迁出了Smoothieware工程, 想单步调试学习一下工程. 工程可以编译下载, 但是没有对单步调试方法做说明. 研究了几天, 大概知道咋回…

Spring/SpringBoot常用注解总结

为什么要写这篇文章&#xff1f; 最近看到网上有一篇关于 SpringBoot 常用注解的文章被转载的比较多&#xff0c;我看了文章内容之后属实觉得质量有点低&#xff0c;并且有点会误导没有太多实际使用经验的人&#xff08;这些人又占据了大多数&#xff09;。所以&#xff0c;自…

第三章 图像的低通与高通滤波

文章目录 前言一、卷积操作二、低通滤波1. 方盒滤波与均值滤波2. 中值滤波3.高斯滤波3.1 高斯分布3.2 滤波流程3.2 OpenCV代码及手动实现 4. 双边滤波4.1 原理4.2 OpenCV代码实现 二、高通滤波1. Sobel算子2. Schar算子3.拉普拉斯算子4. Canny边缘检测4.1 算法流程4.1.2 图像降…

垃圾回收小程序开发功能与优势有哪些?

垃圾回收、二手资源回收、废旧物品回收是最近几年社会提倡也越来越受到人们重视的&#xff0c;所以市面上也产生了一系列二手资源回收软件助力再生资源得到更好的利用&#xff0c;同时对环境保护也有很积极的作用。 垃圾资源回收小程序借助微信平台强大的用户群体&#…

CCF-202209-2-何以包邮?01背包

目录 1、题目描述&#xff1a; 2、思路1&#xff1a;动态规划 2.1、确定dp数组及下标含义 2.2、递推公式 2.3、初始化dp数组 2.4、确定遍历顺序 2.5、C实现如下 3、思路2&#xff1a;暴力法-空间换时间 1、题目描述&#xff1a; 新学期伊始&#xff0c;适逢顿顿书城有…