You need to enable JavaScript to run this app.
最新活动
大模型
产品
解决方案
定价
生态与合作
支持与服务
开发者
了解我们

如何使用gplots包的heatmap.2函数自定义热图轴顺序

如何用gplots的heatmap.2保持CSV原始轴顺序绘制热图

嘿,这个需求我太熟悉了!默认情况下heatmap.2()会自动对行和列做层次聚类,这就会打乱你CSV里原本的轴顺序。要严格保持表格里的顺序,只需要两步就能搞定:


步骤1:加载数据并转换为矩阵

首先确保你加载了必要的包,然后正确读取CSV数据——注意要保留原始的行名和列名,避免R自动修改特殊字符:

# 加载所需包
library(gplots)
library(readr) # 也可以用base R的read.csv,效果一致

# 读取CSV:row.names=1表示把第一列作为行名,check.names=FALSE保留原始列名
raw_data <- read.csv("your_data.csv", row.names = 1, check.names = FALSE)
# 转换为矩阵(heatmap.2要求输入为矩阵格式)
data_matrix <- as.matrix(raw_data)

步骤2:绘制热图并锁定轴顺序

核心是关闭自动聚类,让热图直接沿用矩阵的原始行/列顺序:

heatmap.2(data_matrix,
          # 关键参数:关闭行、列的聚类排序
          Rowv = FALSE,
          Colv = FALSE,
          # 显式指定行/列标签(默认就是原始名称,写出来更稳妥)
          labRow = rownames(data_matrix),
          labCol = colnames(data_matrix),
          # 可选美化参数(根据你的需求调整)
          col = colorRampPalette(c("#2c7fb8", "#ffffff", "#d95f02"))(100), # 自定义颜色渐变
          trace = "none", # 去掉默认的密度追踪线
          margins = c(10, 10), # 调整边距,避免长标签被截断
          dendrogram = "none" # 因为关闭了聚类,直接隐藏树状图
)

额外小贴士

如果后续你需要部分调整顺序(比如某几列重新排序,其余保持原始顺序),可以手动指定排序向量。比如想让列顺序为col2, col1, col3,可以把Colv改成:

Colv = match(c("col2", "col1", "col3"), colnames(data_matrix))

内容的提问来源于stack exchange,提问作者Marc Kees

火山引擎 最新活动