首先是准备数据
画热图的数据
数据是随便构造的,没啥意义
表示样本的分组数据
表示基因的一个分组数据
作图代码
读入数据
df1<-read.xlsx("heatmap/heatmap_example.xlsx",
sheetName = "Sheet1",
row.names=1)
df1
df2<-read.xlsx("heatmap/heatmap_example.xlsx",
sheetName = "Sheet2",
row.names=1)
df2
df3<-read.xlsx("heatmap/heatmap_example.xlsx",
sheetName = "Sheet3",
row.names=1)
df3
作图
library(pheatmap)
anno_colors<-list(
Group1=c(A="red",B="blue"),
Group2=c(Up="red",Down="blue")
)
pheatmap(df1,
annotation_row = df3,
annotation_col = df2,
annotation_colors = anno_colors)
这里遇到报错
Error in convert_annotations(annotation_col, annotation_colors) : Factor levels on variable Group1 do not match with annotation_colors
大体能猜到是表示基因的分组信息和代码里自定义颜色的部分对不上,可是检查了好长时间也一直没有发现问题在哪里,过了一段时间运行table(df3$Group2)
命令的时候才发现了问题
table的输出结果里默认的是右对齐,Up那个没有对齐是以为p后面还有一个空格,最终报错的原因是准备原始数据的时候不小心在文本后多加了一个空格,最终浪费了好长时间,做人途准备数据的时候一定要认真,这里的数据必须是完全对应上才可以
最终的画图结果是
完整代码
library(xlsx)
help(package="xlsx")
df1<-read.xlsx("heatmap/heatmap_example.xlsx",
sheetName = "Sheet1",
row.names=1)
df1
df2<-read.xlsx("heatmap/heatmap_example.xlsx",
sheetName = "Sheet2",
row.names=1)
df2
df3<-read.xlsx("heatmap/heatmap_example.xlsx",
sheetName = "Sheet3",
row.names=1)
df3
library(pheatmap)
anno_colors<-list(
Group1=c(A="red",B="blue"),
Group2=c(Up="red",Down="blue")
)
pheatmap(df1,
annotation_row = df3,
annotation_col = df2,
annotation_colors = anno_colors)
示例数据自己模仿开头的图片自己构造就可以啦,如果这个示例数据的话直接在文末留言就可以了
欢迎大家关注我的公众号
小明的数据分析笔记本
小明的数据分析笔记本 公众号 主要分享:1、R语言和python做数据分析和数据可视化的简单小例子;2、园艺植物相关转录组学、基因组学、群体遗传学文献阅读笔记;3、生物信息学入门学习资料及自己的学习笔记!