seaborn矩阵图组合图---热力图heatmap、聚类图clustermap
分类:
Seaborn
1.热力图heatmap
1 | seaborn.heatmap(data, vmin = None , vmax = None , cmap = None , center = None , robust = False , annot = None , fmt = '.2g' , annot_kws = None , linewidths = 0 , linecolor = 'white' , cbar = True , cbar_kws = None , cbar_ax = None , square = False , xticklabels = 'auto' , yticklabels = 'auto' , mask = None , ax = None , * * kwargs) |
方法:用颜色矩阵去显示数据在两个维度下的度量值
参数:
- data : 要显示的数据
1 | ax = sns.heatmap(data) |
- vmin, vmax : 显示的数据值的最大和最小的范围
1 | ax = sns.heatmap(data,vmin = 0 , vmax = 1 ) |
- cmap : matplotlib颜色表名称或对象,或颜色列表,可选从数据值到色彩空间的映射。如果没有提供,默认设置
1 | ax = sns.heatmap(data,vmin = 0 , vmax = 1 , cmap = 'GnBu' ) |
- center : 指定色彩的中心值
1 | ax = sns.heatmap(data,vmin = 0 , vmax = 1 , cmap = 'GnBu' , center = 0.7 ) |
- robust : 如果“Ture”和“ vmin或” vmax不存在,则使用强分位数计算颜色映射范围,而不是极值。
1 2 | ax = sns.heatmap(data,vmin = 0 , vmax = 1 , cmap = 'GnBu' , center = 0.5 , robust = False ) #Set1 |
- annot : 如果为True,则将数据值写入每个单元格中
1 2 | ax = sns.heatmap(data,vmin = 0 , vmax = 1 , cmap = 'GnBu' , center = 0.5 , robust = False ,annot = True ) #Set1 |
- fmt : 表格里显示数据的类型
1 2 3 | fmt = '.0%' #显示百分比 fmt = 'f' 显示完整数字 = fmt = 'g' fmt = '.3' 显示小数的位数 = fmt = '.3f' = fmt = '.3g' |
- annot_kws : 键,值映射的dict,可选
- linewidths : 划分每个单元格的线的宽度。
- linecolor : 划分每个单元格的线的颜色。
- cbar : 是否绘制颜色条:colorbar,默认绘制
- cbar_kws : 未知 cbar_ax : 显示x-y坐标,而不是节点的编号
- square : 为‘True’时,整个网格为一个正方形
- xticklabels, yticklabels : 可以以字符串进行命名,也可以调节编号的间隔,也可以不显示坐标
1 2 3 | ax = sns.heatmap(uniform_data,cmap = 'RdBu' , center = 0 ,cbar = True , square = False ,xticklabels = [ '12' , '22' ]) #字符串命名 ax = sns.heatmap(uniform_data,cmap = 'RdBu' , center = 0 ,cbar = True , square = False ,xticklabels = 2 ) #编号间隔为2 ax = sns.heatmap(uniform_data,cmap = 'RdBu' , center = 0 ,cbar = True , square = False ,xticklabels = False ) #不显示坐标 |
举例:
1 2 3 4 5 6 | plt.figure(figsize = ( 12 , 6 )) corr_values = data.corr() sns.heatmap(corr_values, annot = True ,vmax = 1 , square = True , cmap = "Blues" ,fmt = '.2f' ) plt.tight_layout() plt.savefig( 'heatmap.png' ,dpi = 600 ) plt.show() |
2.聚类图clustermap
1 | seaborn.clustermap(data, pivot_kws = None , method = 'average' , metric = 'euclidean' , z_score = None , standard_scale = None , figsize = None , cbar_kws = None , row_cluster = True , col_cluster = True , row_linkage = None , col_linkage = None , row_colors = None , col_colors = None , mask = None , * * kwargs) |
- 除此之外,
clustermap
支持绘制层次聚类结构图。如下所示,我们先去掉原数据集中最后一个目标列,传入特征数据即可。当然,你需要对层次聚类有所了解,否则很难看明白图像多表述的含义。
举例:
1 2 | iris.pop( "species" ) sns.clustermap(iris) |
参考文献:
【1】python3.x-seaborn.heatmap随笔
【2】中文官网
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· go语言实现终端里的倒计时
· 如何编写易于单元测试的代码
· 10年+ .NET Coder 心语,封装的思维:从隐藏、稳定开始理解其本质意义
· .NET Core 中如何实现缓存的预热?
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
· 分享一个免费、快速、无限量使用的满血 DeepSeek R1 模型,支持深度思考和联网搜索!
· 使用C#创建一个MCP客户端
· ollama系列1:轻松3步本地部署deepseek,普通电脑可用
· 基于 Docker 搭建 FRP 内网穿透开源项目(很简单哒)
· 按钮权限的设计及实现