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

如何修复pheatmap热图颜色刻度?异常值致热图失真

解决pheatmap热图颜色刻度异常的方案

一、调整颜色刻度(无需移除基因)

针对多数数据集中在0.001-0.1区间、仅存在一个0.3极端值的情况,有两种实用方法优化颜色显示:

1. 手动划分刻度区间

通过breaks参数自定义刻度,让0.001-0.1区间拥有更细致的颜色梯度,0.1-0.3单独分配颜色,既保留极端值,又能看清多数数据的差异:

# 生成刻度:0.001到0.1间分10个梯度,加上极端值0.3
breaks <- c(seq(0.001, 0.1, length.out = 10), 0.3)
# 对应生成渐变颜色
colors <- colorRampPalette(c("blue", "white", "red"))(length(breaks)-1)

pheatmap(igv_dat_vusage_traspose_mat, 
         main = "V Usage score ", 
         fontsize_col = 7, fontsize_row = 5, 
         width = 8, height = 12,  
         cluster_rows = FALSE,
         cluster_cols = FALSE,
         scale = "none",
         breaks = breaks,
         color = colors)

2. 截断极端值的颜色映射

如果不需要突出极端值的具体数值,可将超过0.1的数据统一映射到0.1对应的颜色,同时保留原始数据的完整性(需在图注中说明截断处理):

# 复制数据并截断极端值
dat_trunc <- igv_dat_vusage_traspose_mat
dat_trunc[dat_trunc > 0.1] <- 0.1

pheatmap(dat_trunc, 
         main = "V Usage score (truncated at 0.1)", 
         fontsize_col = 7, fontsize_row = 5, 
         width = 8, height = 12,  
         cluster_rows = FALSE,
         cluster_cols = FALSE,
         scale = "none",
         color = colorRampPalette(c("blue", "white", "red"))(50))

二、是否移除该基因的判断依据

  • 保留基因:若0.3的数值是真实的生物学结果(如该基因的V使用率确实显著高于其他基因),必须保留,通过上述颜色调整方法展示数据,同时在图注中标注该极端值的存在,避免误导。
  • 移除基因:若该数值是技术误差(如测序错误、数据录入失误),可考虑移除,但需在分析文档中明确记录移除的原因和依据,保证分析的可重复性。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.14 17:24:59