You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

使用R为指定数据框绘制自定义参数红色渐变分组热图

R语言自定义红色系分组热图实现方案

以下代码基于pheatmap包实现所有需求,适配提供的数据结构,全量数据直接替换输入部分即可运行。

依赖包安装与加载

未安装相关包先运行安装命令,再加载包:

install.packages(c("pheatmap", "dplyr"))
library(pheatmap)
library(dplyr)

数据预处理与分组配置

首先将数据转换为热图要求的矩阵格式,行对应Y轴代谢物差异指标,列对应X轴营养物指标,同时配置Y轴的亚组分组规则:

# 载入示例数据,实际使用时替换为读取自己全量数据的代码即可
df <- data.str

# 矩阵转置适配轴映射规则:行=代谢物差异指标(Y轴),列=营养物(X轴)
heatmap_mat <- df %>% 
  tibble::column_to_rownames("Metabolite") %>% 
  t() %>% 
  as.matrix()

# Y轴亚组配置,可根据实际分类需求修改规则
# 示例规则:含脂蛋白相关关键词的变量归为脂质组,其余按需求划分为比值组、酮体组
y_subgroup <- data.frame(
  row.names = rownames(heatmap_mat),
  亚组 = case_when(
    grepl("HDL|LDL|IDL|TG|CE|FC|PL", rownames(heatmap_mat)) ~ "脂质组",
    rownames(heatmap_mat) %in% c("Difference_Gln", "Difference_Pyruvate", "Difference_S_HDL_C_pct") ~ "比值组",
    TRUE ~ "酮体组"
  )
)

配色与标注规则设置

按照要求配置红色系渐变色、固定色阶范围,同时生成仅显示大于5数值的标注矩阵:

# 生成从浅到深的红色系渐变色,数值越高颜色越深
red_pal <- colorRampPalette(c("#fff0f0", "#ffbdbd", "#ff6363", "#d10000", "#5c0000"))(100)
# 设置色阶范围为-2到40
color_breaks <- seq(-2, 40, length.out = 101)

# 生成单元格标注矩阵:仅保留数值>5的内容,其余单元格留空
cell_labels <- matrix(
  "", 
  nrow = nrow(heatmap_mat), 
  ncol = ncol(heatmap_mat), 
  dimnames = dimnames(heatmap_mat)
)
cell_labels[heatmap_mat > 5] <- round(heatmap_mat[heatmap_mat > 5], 2) # 标注保留2位小数,可自行调整

热图绘制

运行以下代码直接出图,可根据显示效果调整字号、角度等参数:

pheatmap(
  mat = heatmap_mat,
  color = red_pal,
  breaks = color_breaks,
  # Y轴亚组注释
  annotation_row = y_subgroup,
  # 单元格数值标注
  display_numbers = cell_labels,
  number_color = "white", # 标注文字用白色,保证深色背景上可读性
  # 聚类与轴配置
  cluster_rows = FALSE, # 若需要Y轴自动聚类排序可改为TRUE
  cluster_cols = FALSE,
  angle_col = 45, # X轴标签旋转45度避免重叠
  fontsize_row = 10,
  fontsize_col = 10,
  fontsize_number = 8,
  # 样式调整
  border_color = "white",
  legend_breaks = seq(-2, 40, 10)
)

配置说明:如果需要调整亚组分类,直接修改y_subgroup里的分组映射规则即可,支持任意数量的亚组;如果需要调整色阶范围、标注精度、字体大小,直接修改对应参数的取值即可。

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

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.26 13:15:39