什么叫热图?
简单来说,热图是一种3维数据的可视化图,将数值映射到两个因子型变量中,可以让你在一个矩阵数据中,一眼找到最大的值和最小的值。
示例:
在这样的一个矩阵中,如此多的数据,相信你无法在短时间内获知这个数据的大小情况,接下里让我们将这个数据用热图展示出来,看看可视化之后的结果。
怎么画热图?
pheatmap包
本文采用R语言进行绘制
1.环境设置
rm(list=ls())#环境设置,清理环境中的变量
install.packages('pheatmap')#安装热图所需的R包
require(pheatmap)#加载热图所需R包
require(tidyverse)
2.导入数据
df <- matrix(rnorm(200),20,10) %>% as.data.frame() #创建矩阵数据集并转换为数据框
colnames(df) <- c(paste0('sample',1:10))#修改行名
rownames(df) <- c(paste0('gene',1:20))#修改列名
head(df)#查看修改后的数据集
3.pheatmap包绘制热图
pheatmap(df,scale = 'column',angle_col =90)#scale参数表示是否对行或列进行归一化
4.结果展示
ggplot2包绘制
数据预处理
df <- df %>% mutate(gene=rownames(df))#将行名作为新的一行,为后面宽数据变长数据做准备
df <- df %>% pivot_longer(cols=1:10,names_to ='sample',values_to='value' )#将宽数据变长
#ggplot2绘图需要将宽数据变长之后才可以进行绘图
ggplot2绘图
ggplot(df,aes(gene,sample,fill=value))+
geom_raster()+
theme_classic()+
theme(axis.text.x = element_text(angle = 90 ))+
scale_fill_gradient(low='black',high = 'red')
结果展示
结果分析,红色颜色越深,代表数值更大,黑色颜色越深,代表数值越小。此时,你是否可以一眼看出找出这个矩阵数据中的最大值和最小值了?