熱圖,又稱為熱點圖、熱度圖,是一種數據可視化技術。pheatmap是一種在R語言中用於生成熱圖的包。pheatmap包提供了許多可定製化的參數,使用戶可以輕鬆地自定義熱圖的外觀和行為。
一、安裝和載入pheatmap包
在使用pheatmap之前,必須先安裝和載入該包。可以通過以下命令在R中安裝pheatmap包:
install.packages("pheatmap")
安裝完成後,在每個新的R會話中,使用以下命令載入pheatmap包:
library(pheatmap)
二、生成熱圖的基本語法
在pheatmap中,生成熱圖的基本語法如下:
pheatmap(mat, ...)
其中,mat參數是要繪製的矩陣,…是一系列可選的圖形參數,如行和列的標籤等。
三、載入數據
在使用pheatmap之前,需要將數據載入到R環境中。假設我們有一個名為data的數據集和一個名為labels的標籤集。通過以下命令可以將數據集放到R環境中:
data <-read.csv("data.csv",header=TRUE,sep=",")
該命令將CSV文件data.csv作為數據集載入到data中,並將第一行設置為標題。sep參數指定了CSV文件中的列分隔符,通常為逗號。
如果有行標籤和列標籤,可以使用以下語法將它們分別放到row_labels和col_labels變數中:
row_labels <-data[,1]
col_labels <-names(data[,2:ncol(data)])
四、生成最簡單的熱圖
以下是生成最簡單熱圖的代碼:
pheatmap(data)
該代碼將直接生成一個熱圖,該熱圖沒有標籤、沒有顏色邊界或文本。這是最基本和簡單的熱圖。
五、添加標籤
熱圖的標籤對於讀者來說非常重要。可以使用pheatmap中的row_names和col_names參數添加相應的標籤。以下是使用row_names和col_names參數生成標籤的代碼:
pheatmap(data, row_names=row_labels, col_names=col_labels)
六、自定義顏色
在pheatmap中,可以使用colorRampPalette函數來自定義顏色。以下是自定義顏色的代碼:
# 自定義顏色
my_palette <- colorRampPalette(c("yellow", "red"))(n = 99)
pheatmap(data,
color=my_palette)
該代碼將生成一個使用自定義顏色的熱圖,這裡生成的顏色是從黃色到紅色漸變的。color參數指定顏色向量。
七、添加行和列的注釋
在熱圖中添加行注釋和列注釋是一項有用的功能。可以使用pheatmap中的注釋函數來添加註釋。以下是添加行注釋和列注釋的代碼:
# 添加行注釋和列注釋
library(RColorBrewer)
col_anno_colors <- brewer.pal(3, "Set1")
rownames(data) <- paste("gene", 1:nrow(data), sep = "")
pheatmap(data,
annotation_col = data.frame(cell_type = c(rep("Type1", 3), rep("Type2", 3)),
row.names = colnames(data)),
annotation_row = data.frame(exp_group = c(rep("A", 2), rep("B", 2), rep("C", 2)),
row.names = rownames(data)),
annotation_colors = list(exp_group = c(A = col_anno_colors[1],
B = col_anno_colors[2],
C = col_anno_colors[3])))
該代碼添加了行注釋和列注釋,它們用不同的顏色和標籤表示了輸入數據的分類。annotation_col和annotation_row參數用於注釋行和列的注釋,annotation_colors參數定義顏色。
八、設置字體
在pheatmap中,可以使用字體參數來設置字體。以下是設置字體的代碼:
# 設置字體
library(extrafont)
pheatmap(data,
fontface = "bold",
fontsize_row = 14,
fontsize_col = 12)
該代碼設置了熱圖中行和列的字體大小和粗細。
九、調整布局
pheatmap提供了幾個參數,以方便調整熱圖的布局。以下是調整布局的代碼:
# 調整布局
pheatmap(data,
cellwidth = 30,
cellheight = 20,
margin = c(10,12),
main = "My heatmap")
該代碼調整了熱圖的單元格大小、邊距和標題。cellwidth和cellheight參數用於定義單元格的大小,margin參數定義了熱圖的外邊距,main參數定義了熱圖的標題。
十、合併熱圖
使用layout函數,可以將多個熱圖合併成一個完整的熱圖。以下是合併熱圖的代碼:
# 合併熱圖
p1 <- pheatmap(data1,
fontsize_col = 10,
fontsize_row = 16,
annotation_col = data.frame(type = c("A", "B", "C")),
annotation_colors = list(type = c(A = "red", B = "blue", C = "green")))
p2 <- pheatmap(data2,
fontsize_col = 10,
fontsize_row = 16,
annotation_col = data.frame(type = c("D", "E", "F")),
annotation_colors = list(type = c(D = "red", E = "blue", F = "green")))
layout(matrix(c(1,2), 1, 2), widths = c(4,4))
p1
p2
該代碼將兩個熱圖水平排列,並將它們放到一個更大的熱圖中。
總結
簡而言之,pheatmap是一種R語言包,用於生成高度可定製的熱圖。本文介紹了如何使用pheatmap來生成熱圖,並根據需要自定義行、列的標籤、注釋、顏色、字體以及調整布局。此外,還可以將多個熱圖合併成一個完整的熱圖。使用pheatmap包可以輕鬆生成優美而信息豐富的熱圖。
原創文章,作者:小藍,如若轉載,請註明出處:https://www.506064.com/zh-tw/n/311200.html