首先是準備數(shù)據(jù)
畫熱圖的數(shù)據(jù)
image.png
數(shù)據(jù)是隨便構(gòu)造的,沒啥意義
表示樣本的分組數(shù)據(jù)
image.png
表示基因的一個分組數(shù)據(jù)
image.png
作圖代碼
讀入數(shù)據(jù)
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
大體能猜到是表示基因的分組信息和代碼里自定義顏色的部分對不上,可是檢查了好長時間也一直沒有發(fā)現(xiàn)問題在哪里,過了一段時間運行table(df3$Group2)
命令的時候才發(fā)現(xiàn)了問題
image.png
table的輸出結(jié)果里默認的是右對齊,Up那個沒有對齊是以為p后面還有一個空格,最終報錯的原因是準備原始數(shù)據(jù)的時候不小心在文本后多加了一個空格,最終浪費了好長時間,做人途準備數(shù)據(jù)的時候一定要認真,這里的數(shù)據(jù)必須是完全對應(yīng)上才可以
最終的畫圖結(jié)果是
image.png
完整代碼
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)
示例數(shù)據(jù)自己模仿開頭的圖片自己構(gòu)造就可以啦,如果這個示例數(shù)據(jù)的話直接在文末留言就可以了
歡迎大家關(guān)注我的公眾號
小明的數(shù)據(jù)分析筆記本
小明的數(shù)據(jù)分析筆記本 公眾號 主要分享:1、R語言和python做數(shù)據(jù)分析和數(shù)據(jù)可視化的簡單小例子;2、園藝植物相關(guān)轉(zhuǎn)錄組學(xué)、基因組學(xué)、群體遺傳學(xué)文獻閱讀筆記;3、生物信息學(xué)入門學(xué)習(xí)資料及自己的學(xué)習(xí)筆記!