一、简介
在数据可视化领域,pheatmap是R语言中一款功能强大的绘图工具。它可以帮助我们绘制各类基于热图的数据展示图。pheatmap提供了许多实用的参数和选项,可以让我们自定义图形,以符合实际需求。
下面我们将会从多个方面对pheatmap做详细的阐述。
二、安装及简单用法
要使用pheatmap,请先在R环境中安装这个包。可以使用下面的代码进行安装:
install.packages("pheatmap")
安装完成后,就可以在R中使用这个包了,可以首先创建示意数据,并使用pheatmap函数来进行数据可视化:
library(pheatmap)
# 创建示意数据
data <- matrix(runif(900), nrow = 30, ncol = 30)
# 使用pheatmap函数进行可视化
pheatmap(data)
这段代码将会生成一个简单的pheatmap图像,用于展示示例数据的热度分布情况。除此之外,还有许多其他的选项可以用来调节图像的属性。
三、自定义选项
pheatmap提供了许多实用的参数和选项,这些选项可以帮助我们优化热图的视觉效果,并精细化地呈现数据。接下来我们将会介绍其中的一些重要参数:
1. cluster_rows / cluster_cols
cluster_rows和cluster_cols参数控制了是否对行或列进行聚类。如果将它们设为FALSE,则将禁用这种聚类。如果将它们设为TRUE,则将对相应的行或列进行聚类。默认情况下,这两个参数都是TRUE。
# 不进行聚类
pheatmap(data, cluster_rows = FALSE, cluster_cols = FALSE)
2. annotation_col / annotation_row
annotation_col和annotation_row参数可以帮助我们添加附加信息,这些信息将作为列或行的注释出现。它们需要是一个矩阵,其中每一行对应于列或行。在下面的代码中,我们将使用一些示意注释信息来演示这个参数的用法。
# 添加附加信息
row_annotation <- matrix(LETTERS[1:30], nrow = 30, ncol = 1)
col_annotation <- matrix(LETTERS[1:30], nrow = 1, ncol = 30)
pheatmap(data, annotation_col = col_annotation, annotation_row = row_annotation)
3. breaks
breaks参数可以用来调节颜色的刻度,它需要是一个数值向量,表示热图的颜色刻度值。下面的代码将设置刻度值为0、0.2、0.4、0.6、0.8和1.0。
# 设置颜色刻度
pheatmap(data, breaks = seq(0, 1, 0.2))
4. heatmap_width / heatmap_height
heatmap_width和heatmap_height参数可以控制热图的大小。它们需要是一个数值,以像素为单位。默认情况下,heatmap_width和heatmap_height都是480个像素。
# 自定义热图大小
pheatmap(data, heatmap_width = 800, heatmap_height = 600)
5. legend
legend参数可以用来控制图例的显示。如果将它设为FALSE,则将禁用图例;如果将它设为TRUE,则将显示图例。默认情况下,legend是为TRUE的。
# 禁用图例
pheatmap(data, legend = FALSE)
四、进阶用法
pheatmap具有很高的自定义性,它可以帮助我们展现复杂的数据分布情况,也可以结合其他的R包来进行更为深入的数据分析。
1. 使用ggplot2
与ggplot2包结合使用,可以使pheatmap的作图更加精美。下面的代码演示了如何使用ggplot2来调节热图的颜色映射。
library(ggplot2)
# 定义颜色映射
my_palette <- colorRampPalette(c("red", "blue", "green"))(n = 10)
# 使用ggplot2进行调节
pheatmap(data, color = my_palette, cluster_rows = FALSE, cluster_cols = FALSE,
legend = FALSE) +
theme(plot.margin = unit(c(2, 2, 2, 2), "cm")) +
scale_fill_gradientn(colours = my_palette)
2. 与其他包结合使用
除了ggplot2以外,pheatmap还可以和其他的R包结合使用,以实现更为复杂的数据分析。例如,下面的代码使用pheatmap和WGCNA包来分析基因共表达网络。
library(pheatmap)
library(WGCNA)
# 读取数据
data <- read.table("gene_expression_data.txt", header = TRUE, row.names = 1)
# 转换为WGCNA包需要的数据类型
datExpr <- t(data)
# 计算模块
net <- blockwiseModules(datExpr, power = 4,
TOMType = "unsigned",
mergeCutHeight = 0.25,
minModuleSize = 30,
reassignThreshold = 0,
pamRespectsDendro = FALSE,
saveTOMs = TRUE,
saveTOMFileBase = "TOM")
# 获取模块的顺序
moduleOrder <- order(as.numeric(net$colors))
# 绘制热图
pheatmap(datExpr, cluster_rows = FALSE, cluster_cols = FALSE,
col = colorRampPalette(c("white", "red"))(100),
row_order = moduleOrder, annotation_row = net$colors)
五、总结
本文介绍了R语言pheatmap的基本用法和常用参数,同时也展示了一些高级用法,包括与ggplot2和其他R包的结合使用。pheatmap是一个功能强大而丰富的绘图工具,它可以帮助我们有效地分析和呈现各种数据集的信息。可以根据实际需求,合理选取pheatmap的各种参数,从而得到具有良好视觉效果的热图图像。