首页 > 其他分享 >利用R语言heatmap.2函数进行聚类并画热图

利用R语言heatmap.2函数进行聚类并画热图

时间:2024-01-10 14:02:19浏览次数:25  
标签:热图 heatmap.2 adjCol 聚类 offsetCol offsetRow srtCol


数据聚类然后展示聚类热图是生物信息中组学数据分析的常用方法,在R语言中有很多函数可以实现,譬如heatmap,kmeans等,除此外还有一个用得比较多的就是heatmap.2。最近在网上看到一个笔记文章关于《一步一步学heatmap.2函数》,在此与大家分享。由于原作者不详,暂未标记来源,请原作者前来认领哦,O(∩_∩)O哈哈~

数据如下:

library(gplots)
data(mtcars)
x <- as.matrix(mtcars)
rc <- rainbow(nrow(x), start=0, end=.3)
cc <- rainbow(ncol(x), start=0, end=.3)

X就是一个矩阵,里面是我们需要画热图的数据。

Rc是一个调色板,有32个颜色,渐进的

Cc也是一个调色板,有11个颜色,也是渐进的

首先画一个默认的图:


  1. heatmap.2(x)

然后可以把聚类数可以去掉:就是控制这个dendrogram参数


heatmap.2(x, dendrogram=“none”)

然后我们控制一下聚类树


heatmap.2(x, dendrogram=“row”) # 只显示行向量的聚类情况
heatmap.2(x, dendrogram=“col”) #只显示列向量的聚类情况

下面还是在调控聚类树,但是我没看懂跟上面的参数有啥子区别!

heatmap.2(x, keysize=2) ## default - dendrogram plotted and reordering done.
heatmap.2(x, Rowv=FALSE, dendrogram=“both”) ## generate warning!
heatmap.2(x, Rowv=NULL, dendrogram=“both”) ## generate warning!
heatmap.2(x, Colv=FALSE, dendrogram=“both”) ## generate warning!

接下来我们可以调控行列向量的label的字体大小方向

首先我们调控列向量,也就是x轴的label

heatmap.2(x, srtCol=NULL)
heatmap.2(x, srtCol=0, adjCol = c(0.5,1) )
heatmap.2(x, srtCol=45, adjCol = c(1,1) )
heatmap.2(x, srtCol=135, adjCol = c(1,0) )
heatmap.2(x, srtCol=180, adjCol = c(0.5,0) )
heatmap.2(x, srtCol=225, adjCol = c(0,0) ) ## not very useful
heatmap.2(x, srtCol=270, adjCol = c(0,0.5) )
heatmap.2(x, srtCol=315, adjCol = c(0,1) )
heatmap.2(x, srtCol=360, adjCol = c(0.5,1) )

然后我们调控一下行向量,也就是y轴的label


heatmap.2(x, srtRow=45, adjRow=c(0, 1) )
heatmap.2(x, srtRow=45, adjRow=c(0, 1), srtCol=45, adjCol=c(1,1) )
heatmap.2(x, srtRow=45, adjRow=c(0, 1), srtCol=270, adjCol=c(0,0.5) )

设置 offsetRow/offsetCol 可以把label跟热图隔开!


## Show effect of offsetRow/offsetCol (only works when srtRow/srtCol is 
## not also present) heatmap.2(x, offsetRow=0, offsetCol=0)
heatmap.2(x, offsetRow=1, offsetCol=1) 
heatmap.2(x, offsetRow=2, offsetCol=2) 
heatmap.2(x, offsetRow=-1, offsetCol=-1) 
heatmap.2(x, srtRow=0, srtCol=90, offsetRow=0, offsetCol=0)
heatmap.2(x, srtRow=0, srtCol=90, offsetRow=1, offsetCol=1)
heatmap.2(x, srtRow=0, srtCol=90, offsetRow=2, offsetCol=2)
heatmap.2(x, srtRow=0, srtCol=90, offsetRow=-1, offsetCol=-1)

1. ## Show effect of z-score scaling within columns, blue-red color scale 
2. hv <- heatmap.2(x, col=bluered, scale=“column”, tracecol=“#303030”)

hv是一个热图对象!!!

> names(hv) # 可以看到hv对象里面有很多子对象
> “rowInd” “colInd” “call” “colMeans” “colSDs” “carpet” “rowDendrogram” “colDendrogram” “breaks” “col” “vline” “colorTable” ## Show the mapping of z-score values to color bins hvKaTeX parse error: Expected 'EOF', got '#' at position 638: …an >#̲# Extract the r…colorTable[hvKaTeX parse error: Expected 'EOF', got '#' at position 124: …n >"#̲FFFFFF"</span><…colorTable[hvKaTeX parse error: Expected 'EOF', got '#' at position 124: …n >"#̲FFFFFF"</span><…colSDs +colSDs +KaTeX parse error: Expected 'EOF', got '#' at position 1148: …n >"#̲303030"</span><…Type)], xlab=‘CellLines’,
 ylab=‘Probes’,
 main=Cluster_Method[i],
 col=greenred(64))
 dev.off()
}

 

这样就可以一下子把七种cluster的方法依次用到heatmap上面来。而且通过对cluster树的比较,我们可以从中挑选出最好、最稳定到cluster方法,为后续分析打好基础!

 

对下面这个数据聚类:

require(graphics)
hc <- hclust(dist(USArrests), “ave”)
plot(hc)

首先对一个数据框用dist函数处理得到一个dist对象!

Dist对象比较特殊,专门为hclust函数来画聚类树的!

标签:热图,heatmap.2,adjCol,聚类,offsetCol,offsetRow,srtCol
From: https://blog.51cto.com/u_14682436/9179441

相关文章

  • 文本挖掘的文本聚类与主题模型:实现信息挖掘的关键
    1.背景介绍文本挖掘是一种通过对文本数据进行挖掘和分析来发现隐藏知识和模式的方法。它广泛应用于各个领域,如自然语言处理、数据挖掘、信息检索等。文本聚类和主题模型是文本挖掘中两个核心技术,它们可以帮助我们对文本数据进行有效的分类和主题分析。文本聚类是指将文本数据分为多......
  • 聚类与推荐系统:从用户行为到内容
    1.背景介绍在当今的大数据时代,数据已经成为企业和组织中最宝贵的资源之一。随着互联网的普及和用户行为的增多,大量的用户行为数据和内容数据已经被生成出来。这些数据为企业和组织提供了宝贵的信息和智能决策的依据。聚类和推荐系统是数据挖掘和人工智能领域中的两个重要领域,它们涉......
  • 人工智能_机器学习081_聚类评价指标_轮廓系数_公式理解---人工智能工作笔记0121
    然后我们再来看,那么对于数据来说,我们分成几类比较合适呢,怎么衡量呢?我们之前做分类的时候,用的是准确率对吧,然后做回归问题的时候,用均方误差.而我们在Kmeans衡量分成几类比较好用的函数是,轮廓系数对吧,可以看到上面是轮廓系数的公式可以看到,他有两个点 可以看到公式中的a......
  • 【Lidar】Open3D点云K-Means聚类算法:基于距离的点云聚类(单木分割)附Python代码
    ​ 1K-Means算法介绍        K-means聚类算法是一种无监督学习算法,主要用于数据聚类。该算法的主要目标是找到一个数据点的划分,使得每个数据点与其所在簇的质心(即该簇所有数据点的均值)之间的平方距离之和最小。        在K-means聚类算法中,首先需要预定义簇......
  • 【Python数据分析课程设计】大数据分析—利用k-means 聚类分析对客户细分分析
    一、选题的背景在当今社会,大数据已经成为了企业决策的重要依据。通过对客户进行细分分析,企业可以更好地了解客户的需求和行为,从而制定更加精准的营销策略,提高市场竞争力。要达到的数据分析目标是通过对客户数据的分析,找出不同客户群体的特征和需求,为企业提供有针对性的营销......
  • 机器学习-无监督机器学习-密度聚类DBSCAN-19
    目录1.DBSCAN2.OPTICS2.MeanShift1.DBSCANDensitybasedclusteringDBSCAN不要求我们指定cluster簇的数量,避免了异常值,并且在任意形状和大小的cluster簇中工作得非常好。它没有质心,聚类簇是通过将相邻的点连接在一起的过程形成的。超参数:Epsilon(ɛ):设置的最大半径。最......
  • R语言k-means聚类、层次聚类、主成分(PCA)降维及可视化分析鸢尾花iris数据集|附代码数据
    原文链接:http://tecdat.cn/?p=22838最近我们被客户要求撰写关于鸢尾花iris数据集的研究报告,包括一些图形和统计输出。本练习问题包括:使用R中的鸢尾花数据集 (a)部分:k-means聚类使用k-means聚类法将数据集聚成2组。画一个图来显示聚类的情况使用k-means聚类法将数据集聚成3组......
  • 谷歌 | Duet AI 让洞察、聚类模型和可视化变得简单
    【CloudAce云一是GoogleCloud全球战略合作伙伴,在亚太地区、欧洲、美洲和非洲拥有二十多个办公室。CloudAce在谷歌专业领域认证及专业知识目前排名全球第一位,并连续多次获得GoogleCloud各类奖项。作为谷歌云托管服务商,我们提供谷歌云、谷歌地图、谷歌办公套件、谷歌云认证......
  • CTR模型,聚类型特征的生产原则
    聚类型特征,即把每个item归类成一个品类,比如:杠铃---健身器材深蹲架---健身器材史密斯架---健身器材牙刷---生活用品抱枕--生活用品这种聚类型特征的生产的优化方向:1,是聚类的准确度;2,聚类体系的定义合理度;因为,给用户推荐的本质就是推荐相似的item。所以item的特征的......
  • 聚类建模对智能助眠灯市场营销分析
    分析师:YueYu如何精准定位目标客户,准确量化客户需求来开发新的产品组合,并预测其可能的市场份额。解决方案任务/目标根据零售业务营销要求,运用多种数据源分析向客户给出产品性能组合的建议。数据源准备搜集除已有销量数据之外的额外信息包括对潜在消费者进行市场调查,收集其基本信息......