R语言之热图

什么叫热图?

简单来说,热图是一种3维数据的可视化图,将数值映射到两个因子型变量中,可以让你在一个矩阵数据中,一眼找到最大的值和最小的值。
示例:
R语言之热图_第1张图片
在这样的一个矩阵中,如此多的数据,相信你无法在短时间内获知这个数据的大小情况,接下里让我们将这个数据用热图展示出来,看看可视化之后的结果。

怎么画热图?

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.结果展示

R语言之热图_第2张图片

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')

结果展示

R语言之热图_第3张图片
结果分析,红色颜色越深,代表数值更大,黑色颜色越深,代表数值越小。此时,你是否可以一眼看出找出这个矩阵数据中的最大值和最小值了?

你可能感兴趣的:(R绘图,r语言)