当前位置: 首页 > news >正文

【Python】数据可视化之聚类图

目录

clustermap

主要参数

参考实现


clustermap

sns.clustermap是Seaborn库中用于创建聚类热图的函数,该函数能够将数据集中的样本按照相似性进行聚类,并将聚类结果以矩阵的形式展示出来。

sns.clustermap主要用于绘制聚类热图,该热图通过颜色深浅来表示数据值的大小或类别,从而直观地展示数据间的相似性和差异性。在聚类热图中,每个样本被表示为一个方块,方块的颜色表示样本的特征值,方块的位置表示样本的聚类结果。

使用sns.clustermap需要注意数据集的大小和复杂性,因为聚类分析可能需要较长的计算时间。可以根据需要对聚类热图进行进一步的自定义,如设置颜色映射、调整标签等。sns.clustermap函数返回的是一个ClusterGrid对象,该对象包含了热图和聚类树等组件,可以通过该对象进行进一步的自定义和修改。

主要参数

  • data:输入的数据集,可以是Pandas DataFrame或NumPy数组。
  • row_cluster:布尔值,控制是否对行进行聚类。默认为True。
  • col_cluster:布尔值,控制是否对列进行聚类。默认为True。
  • metric:字符串或可调用对象,指定聚类时使用的距离度量方法。默认为'euclidean'。
  • method:字符串,指定聚类时使用的算法。默认为'average'。
  • standard_scale:布尔值或整数,控制是否对数据进行标准化处理。如果为True,则按行进行标准化;如果为整数n,则按前n个主成分进行标准化。默认为None,不进行标准化处理。
  • z_score:整数或布尔值,控制是否按行列计算z分数进行标准化。如果为整数n,则按前n个主成分进行z分数标准化;如果为True,则对整个数据集进行z分数标准化。默认为None,不进行z分数标准化处理。
  • cmap:字符串或Colormap对象,指定热图使用的颜色映射方案。默认为Seaborn的默认颜色映射方案。
     

参考实现

使用行和列聚类

# 加载iris数据集
iris = sns.load_dataset("iris")
# 将species列从iris数据集中弹出,并赋值给species变量
species = iris.pop("species")
# 使用seaborn库中的clustermap函数,对iris数据集进行聚类分析
sns.clustermap(iris)

更改图片的大小和布局:

sns.clustermap(iris,figsize=(7, 5),row_cluster=False,dendrogram_ratio=(.1, .2),cbar_pos=(0, .2, .03, .4)
)

为数据添加彩色标签

# 创建一个字典,将species中的唯一值映射到"rbg"中的颜色
lut = dict(zip(species.unique(), "rbg"))
# 将species中的值映射到lut中的颜色
row_colors = species.map(lut)
# 使用seaborn的clustermap函数绘制聚类图,并将species的颜色映射到行颜色
sns.clustermap(iris, row_colors=row_colors)

 

使用不同的颜色映射

# 使用seaborn库中的clustermap函数绘制聚类热图
# iris为数据集,cmap为颜色映射,vmin和vmax为颜色映射的最小值和最大值
sns.clustermap(iris, cmap="mako", vmin=0, vmax=10)

 

使用不同的聚类参数 

# 使用seaborn库中的clustermap函数,对iris数据集进行聚类分析
# metric参数指定聚类时使用的距离度量方式,这里使用相关系数
# method参数指定聚类时使用的聚类方法,这里使用单链接法
sns.clustermap(iris, metric="correlation", method="single")

按照标准化的数据绘图

# 使用seaborn库中的clustermap函数对iris数据集进行聚类分析,并将标准化后的数据绘制成热图
sns.clustermap(iris, standard_scale=1)

以0为均值进行规范化

# 使用seaborn库中的clustermap函数绘制聚类热图
# iris为数据集,z_score为0表示不进行标准化,cmap为"vlag"表示使用vlag颜色映射,center为0表示将数据集中的数值中心化
sns.clustermap(iris, z_score=0, cmap="vlag", center=0)

 


http://www.mrgr.cn/news/43907.html

相关文章:

  • 第十三章 Redis短信登录实战(基于Redis)
  • VB6.0 怎么让窗口固定没有放大只有缩小
  • 【数学二】一元函数微分学-导数的计算-复合函数的求导法则、反函数求导法则、隐函数求导法则
  • 面试官:MySQL 什么时候会出现死锁问题?为什么不推荐使用RR隔离级别?
  • msvcp140.dll丢失的解决方法,详细解读6种解决方法
  • 使用winsock和ip相关指令重置Window网络配置
  • macos 中使用macport安装,配置,切换多版本php,使用port 安装php扩展方法总结
  • MySQL 内部优化特性:索引下推
  • uptime命令:显示系统运行时间、负载、用户
  • SVM及其实践2 --- 对典型数据集的多分类实践
  • 【React】增量传输与渲染
  • 第十一篇——鸡兔同笼:方程这个数学工具为什么很强大?
  • 视频加字幕用什么软件最快?12款工具快速添加字幕!
  • 存-20241005 CSPJ模拟测试2 题解
  • 银行账号组成
  • Redis Stack十部曲之四:与Redis数据之间的交互
  • 71.【C语言】动态内存管理(重点)(4)
  • CPU飙高如何处理?
  • TM1618控制共阳极数码管的数据传送问题
  • SpringBoot MyBatis连接数据库设置了encoding=utf-8还是不能用中文来查询