R语言绘图 | 使用pheatmap快速绘制热图
时间:2022-07-23
本文章向大家介绍R语言绘图 | 使用pheatmap快速绘制热图,主要内容包括其使用实例、应用技巧、基本知识点总结和需要注意事项,具有一定的参考价值,需要的朋友可以参考一下。
热图是我们展示数据时常用的图形,今天小编教大家使用"pheatmap" 快速绘制热图。
首先,我们需要准备输入文件。比如,我想绘制热图来比较30个基因在6个组织里的表达情况。
如图所示,第一列为基因名,第一行为不同组织的名称,整理好后保存为制表符分隔的txt格式,准备好输入文件后我们就可以开始绘制热图啦。
## 安装R包
install.packages("pheatmap")
## 加载R包
library("pheatmap")
## 输入文件
exp <- read.table("input.txt",sep="t",header=T,row.names = 1)
## 绘制热图
pheatmap(exp,cellwidth=20, cellheight=10,cluster_cols=T,cluster_rows=T)
exp:输入的表达量。
cellwidth:热图每格的宽度。
cellheight:热图每格的高度。
cluster_cols:对列进行聚类。
cluster_rows:对行进行聚类。
执行完代码后,热图就绘制好啦!
由于我们不同基因的表达量数值差异太大,所以导致我们色阶的区分度特别小,这时我们可以通过对表达量取对数来解决这个问题。
## 对表达量取对数绘制热图
pheatmap(log((exp+1),2),cellwidth=20, cellheight=10,cluster_cols=F,cluster_rows=T)
这时我们可以看到,热图中基因的表达量有了明显区分,这30个基因在E和F组织中基本不表达。
如果我们想给热图换个配色,可以用以下代码:
## 更换热图颜色
pheatmap(log((exp+1),2),cellwidth=20, cellheight=10,cluster_cols=F,cluster_rows=T,color=colorRampPalette(c("navy","white","red"))(10))
在colorRampPalette后输入要更改的颜色,(10)代表将色阶分为10个梯度。
pheatmap还有许多其他功能,具体使用方法大家可以参考:
https://www.jianshu.com/p/1c55ea64ff3f
参考资料:
https://cran.r-project.org/web/packages/pheatmap/pheatmap.pdf
- poj 2469 Stack 'em Up
- React多页面应用3(webpack性能提升,包括打包性能、提取公共包等)
- POJ 2646 The Trip
- React多页面应用2(处理CSS及图片,引入postCSS,及图片处理等)
- 图的广度优先搜索和深度优先搜索(邻接链表表示)邻接链表广度优先搜索深度优先搜索运行结果
- JOJ 2680 Problem F: Coin Game
- React多页面应用1(webpack开发环境搭建,包括Babel、热更新等)
- JOJ 2676 Problem B
- React项目配置2(自己封装Ajax)
- React项目配置1(如何管理项目公共js方法)
- c++中stack、queue、vector的用法一、栈(stack)二、队列(queue)三、向量(vector)
- React技巧7(TodoList实现3组件之间传递数据之优化)
- React技巧6(TodoList实现2组件之间传递数据)
- POJ A Knight's Journey
- JavaScript 教程
- JavaScript 编辑工具
- JavaScript 与HTML
- JavaScript 与Java
- JavaScript 数据结构
- JavaScript 基本数据类型
- JavaScript 特殊数据类型
- JavaScript 运算符
- JavaScript typeof 运算符
- JavaScript 表达式
- JavaScript 类型转换
- JavaScript 基本语法
- JavaScript 注释
- Javascript 基本处理流程
- Javascript 选择结构
- Javascript if 语句
- Javascript if 语句的嵌套
- Javascript switch 语句
- Javascript 循环结构
- Javascript 循环结构实例
- Javascript 跳转语句
- Javascript 控制语句总结
- Javascript 函数介绍
- Javascript 函数的定义
- Javascript 函数调用
- Javascript 几种特殊的函数
- JavaScript 内置函数简介
- Javascript eval() 函数
- Javascript isFinite() 函数
- Javascript isNaN() 函数
- parseInt() 与 parseFloat()
- escape() 与 unescape()
- Javascript 字符串介绍
- Javascript length属性
- javascript 字符串函数
- Javascript 日期对象简介
- Javascript 日期对象用途
- Date 对象属性和方法
- Javascript 数组是什么
- Javascript 创建数组
- Javascript 数组赋值与取值
- Javascript 数组属性和方法