載入包
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的行名