R語言——pheatmap包


載入包

library(pheatmap)

載入數據

data_frame = read.csv("file_path.csv",
                      header = T,  #將第行設為列名
                      )

# 將第一列設為行名
rownames(data_frame) = data_frame[,1]
data_frame = data_frame[,-1]   #刪除第一列

繪制熱圖

pheatmap(data,
        scale="row",  #對行進行標准化
        border=TRUE,  #顯示格子邊框線與否
        border="white",  #設置邊框顏色為白色
        cluster_cols = F, cluster_rows = F,   #行列聚類與否
        clustering_method = "average",  #設定不同聚類方法,默認為"complete",可以設定為'ward', 'ward.D', 'ward.D2', 'single', 'complete', 'average', 'mcquitty', 'median' or 'centroid'("single"選擇最近的點,"complete"選擇最遠的點,"average"選擇所有點距離的平均值)
        clustering_distance_rows = "correlation",  #表示行聚類使用皮爾森相關系數聚類,默認為歐氏距離"euclidean"
        show_rownames = F, show_colnames = F,  #行列名稱的顯示與否
        legend = F,  #圖例顯示與否
        legend_breaks=c(-2,0,2),  #設置圖例范圍
        legend_labels = c("0", "1e-4", "1e-3", "1e-2", "1e-1", "1"),  #添加圖例標簽
        cellwidth = 15, cellheight = 12,   #設置cell大小
        fondsize = 2,  #設置字體大小
        fontsize_row = 8, fontsize_col=12,  #改變橫向和縱向字體大小
        treeheight_col = 20, treeheight_row = 15,   #設置橫向縱向的樹高
        display_numbers = TRUE,  #在每個熱圖格子中顯示相應的數值與否
        number_color = "blue",  #設置熱圖格子中顯示數值字體的顏色
        number_format = "%.1e",  #設置熱圖格子中顯示數值的格式
        display_numbers = matrix(ifelse(data > 5, "*", ""), nrow(data)),  #設置條件展示:大於5的格子顯示*
        color = colorRampPalette(c("navy", "white", "firebrick3"))(50),  #定義顏色
        angle_col = "45",  #列標簽角度改為45°
        gaps_row = c(10, 14),  #在第10列和第14列后設gap
        cutree_col = 2,  #根據聚類結果設gap
        labels_row = c("", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "Il10", "Il15", "Il1b"),  #展示行或者列的label
        annotation_col = group,  #以group數據框注釋列分組,可進行多級注釋
        )

生成行列注釋

# 列注釋,列注釋dataframe——group的行名為data的列名
group = rep(c("Immune control","immune clearance","immune tolerance","healthy control"),c(11,50,22,6))
group = data.frame(group = factor(group))
rownames(group) = colnames(M1_genes)
# 行注釋類似,行注釋dataframe的列名為data的行名


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM