ComplexHeatmap包由顾祖光博士创建,用于绘制美观的热图,用颜色表示数据的聚合程度,相对美观。
使用手册见GitHub链接:
https://jokergoo.github.io/ComplexHeatmap-reference/book/
使用RStudio进行绘制

目标图形为河流底泥重金属的聚类分析热图,绘制流程如下:
1、安装相应package
2、正确导入数据,形成初始图
3、调整画面参数

安装相应package

# 检测安装CRAN包
package_list = c("circlize","grid","BiocManager")
for(p in package_list){
if (!requireNamespace(p, quietly = TRUE))install.packages(p)
}
# 检测安装bioconductor包
package_list = c("ComplexHeatmap")
for(p in package_list){
if (!requireNamespace(p, quietly = TRUE))BiocManager::install(p)
}# 加载依赖包
library(circlize)
library(grid)
library(ComplexHeatmap)

正确导入数据
1、点击左上角,新建 R Script,方便后续修改,减少直接在console里试错的代码行数,让画面更简洁,正确代码更方便查找。

2、设置新seed,然后右上角environment中点击import dataset,导入并预览相应的Excel文件(需事先安装读取Excel的package和安装rJava并配置环境)。
3、将数据进行0-1标准化,以消除量纲的影响。其计算方法为:x=(x-min)/(max-min)

相应代码如下:

set.seed(123)
library(readxl)
data1 <- read_excel(“data1.xls”)
View(data1)
#选择需要画图的列
mat <- subset(data1,select = c(“Cu”,“Zn”,“Pb”,“Cd”,“Cr”,“Ni”,“Hg”,“As”))
#因第一列数据类型为文本,需将其变成矩阵后才可将其作为列名,故将矩阵转置
mat_t <- t(mat)
#对行命名
colnames(mat_t)<-as.matrix(data1[,1])
#画图指令
heatmap(mat_t.scaled)

形成初始图:
调整画面参数
色彩选用RGB颜色,考虑到原数据为已标准化的连续矩阵,可使用一个颜色向量,此时受到极端值的影响,如果数据未标准化,可自行设置颜色取值区间,此时不受极端值影响。

#不受极端值影响,自定义颜色取值区间col_fun = colorRamp2(c(0.15,0.2,0.25,0.3,0.35),c("#FFFF00","#FFF68F", "#FFFFE0", "#CAE1FF","#5CACEE"))col_fun(seq(0, 1))
library(circlize)
#对不同数据进行分层设定颜色
col_fun = colorRamp2(seq(min(mat_t), max(mat_t), length = 2), c("#FFFAFA","#FF4500"),space = "RGB")
#对左侧聚成的三类进行颜色区分
library(dendextend)
row_dend = as.dendrogram(hclust(dist(mat_t)))
row_dend = color_branches(row_dend, k = 3) # `color_branches()` returns a dendrogram object
#增加边框、各色块间设置自定义线、设置高度,生成图
Heatmap(mat_t, name = "mat",col = col_fun,border = TRUE,rect_gp = gpar(col = "black", lwd = 1),column_dend_height = unit(2, "cm"),row_dend_width = unit(2, "cm"), cluster_rows = row_dend)

R语言:使用ComplexHeatmap包绘制热图相关推荐

  1. R语言使用beanplot包绘制豆荚图实战:与箱图、小提琴图对比、绘制不对称的豆荚图

    R语言使用beanplot包绘制豆荚图实战:与箱图.小提琴图对比.绘制不对称的豆荚图 目录 R语言使用beanplot包绘制豆荚图实战 #包的安装和导入 #豆荚图与箱图

  2. R语言使用forestplot包绘制森林图:编码创建森林图仿真数据、汇总线修改、元素位置调整、垂直线、字体、风格、置信区间、线型、图例、刻度、标签等

    R语言使用forestplot包绘制森林图:编码创建森林图仿真数据.汇总线修改.元素位置调整.垂直线.字体.风格.置信区间.线型.图例.刻度.标签等 目录

  3. ComplexHeatmap包绘制热图(二)

    前面我介绍了如何利用ComplexHeatmap包绘制简单的热图,现在我们绘制一个稍微复杂一些的热图 首先还是配置数据 data=matrix(rnorm(100),nrow=10) colnames ...

  4. 跟着iMeta学做图|ComplexHeatmap包绘制热图展示不同样本物种相对丰度

    本教程相关代码已经上传至 https://github.com/iMetaScience/iMetaPlot/tree/main/221125HeatmapOfAbundance 如果你使用本代码,请 ...

  5. R语言使用table1包绘制(生成)三线表、使用单变量分列构建三线表、编写自定义三线表结构(将因子变量细粒度化重新构建三线图)、为不同的变量显示不同的统计信息

    R语言使用table1包绘制(生成)三线表.使用单变量分列构建三线表.编写自定义三线表结构(将因子变量细粒度化重新构建三线图).为不同的变量显示不同的统计信息 目录

  6. 三线表是什么?R语言使用table1包绘制(生成)三线表、使用单变量分列构建三线表、编写自定义三线表结构(将因子变量细粒度化重新构建三线图)、编写自定义函数在三线表中添加p值

    三线表是什么?R语言使用table1包绘制(生成)三线表.使用单变量分列构建三线表.编写自定义三线表结构(将因子变量细粒度化重新构建三线图).编写自定义函数在三线表中添加p值 目录

  7. R语言使用pROC包在同一图中绘制两条ROC曲线并通过假设检验检验ROC曲线的AUC或者偏AUC的差异(输出p值)

    R语言使用pROC包在同一图中绘制两条ROC曲线并通过假设检验检验ROC曲线的AUC或者偏AUC的差异(输出p值) 目录

  8. R语言使用pROC包绘制ROC曲线实战:roc函数计算AUC值、plot.roc函数绘制ROC曲线、添加置信区间、为回归模型中的每个因子绘制ROC曲线并在同一个图中显示出来

    R语言使用pROC包绘制ROC曲线实战:roc函数计算AUC值.plot.roc函数绘制ROC曲线.添加置信区间.为回归模型中的每个因子绘制ROC曲线并在同一个图中显示出来 目录

  9. R语言使用forestploter包绘制单组及双组森林图

    R语言使用forestploter包绘制单组及双组森林图 您可以使用 forestplot 包绘制单组和双组森林图.该包提供了一个简单的方法来绘制证据汇总图,并可以在一个图中显示多种证据来源的结果. ...

最新文章

  1. Myeclipse中修改项目默认编码还是乱码?一步永久解决!
  2. 实时目标检测--Pelee: A Real-Time Object Detection System on Mobile Devices
  3. 富士康c语言试卷答案,2015富士康笔试题目及答案
  4. hdu2482 字典树+spfa
  5. 基于matlab的dsp调试方法,基于Matlab7.0的DSP调试
  6. Kubernetes之kubectl常用命令
  7. 禅道开源版用户手册_Docker搭建开源版禅道以及项目基本流程介绍
  8. python 字符串处理 字典_python 字符串和字典
  9. 线程join_Java 并发编程:线程间的协作(wait/notify/sleep/yield/join)
  10. vue 导入excel解析_VUE中导入excel文件
  11. sql server mysql 同步_SQL Server 用链接server 同步MySQL
  12. superset docker 部署
  13. 物联网时代AMD迎来最强发展契机
  14. Unity游戏开发——Excel数据读取到游戏中
  15. NSThread 在主线操作的三个方法
  16. 计算机控制系统课件百度云,技术员给你防止百度网盘和谐的方法
  17. Mybatis对象中含有list对象
  18. 我从Web前端开发转到网页游戏开发
  19. 浙大中控T9100系统在压缩机上的应用
  20. cef调用本地html,在CefSharp中使用本地构建的网页(Working with locally built web page in CefSharp)...

热门文章

  1. 信息系统项目管理师核心考点(七)软件架构风格
  2. 绕过安卓SSL验证证书的常见四种方式
  3. 框架使用 - 收藏集 - 掘金
  4. 不要在意FIl短期,FIl未来价值可期
  5. SQL—————的分类
  6. 关于STM32H7的串口DMA的使用
  7. php ci hooks,CodeIgniter框架钩子机制实现方法【hooks类】
  8. C# CSharp计算标准偏差 重复精度 和Excel中的STDEV函数相同
  9. 二层交换机 三层交换机 四层交换机的区别
  10. java简单播放器涉及与实现