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

R语言pheatmap绘制大矩阵热图出现随机白色分割线问题求助

问题现象

使用pheatmap绘制10000*2000规模的矩阵热图时,热图主区域会随机出现不规则白色分割线,经检查数据无NA行/列,分割线位置随分辨率调整发生变化,RStudio预览和导出本地文件均会复现该问题,现象如下图:
问题示例图

问题原因

该问题为超大维度矩阵热图的典型渲染问题,本质是单热图单元格尺寸小于图形设备的单个像素尺寸,抗锯齿算法采样时出现漏绘,与数据本身无关,可通过以下方案解决:

解决方案

方案1:关闭抗锯齿+移除单元格边框(优先级最高)

  • RStudio预览设置:依次点击工具-全局选项-图形-后端,将抗锯齿选项改为无后重启RStudio即可。
  • 导出PDF格式文件:
pdf("heatmap_output.pdf", width = 16, height = 20, useDingbats = FALSE, antialias = "none")
pheatmap(your_matrix,
         show_rownames = FALSE,
         show_colnames = FALSE,
         border_color = NA) # 移除单元格边框,避免加剧白线条问题
dev.off()
  • 导出PNG/TIFF等位图格式文件:
png("heatmap_output.png", width = 16, height = 20, units = "in", res = 300, antialias = "none")
pheatmap(your_matrix, border_color = NA)
dev.off()

方案2:改用光栅化渲染(适合超大规模矩阵)

pheatmap默认采用矢量模式逐个绘制单元格,10000*2000的矩阵会生成千万级矢量元素,渲染压力极大,替换为光栅化渲染可彻底解决该问题:

# 安装依赖
if (!require("grid")) install.packages("grid")

# 静默生成pheatmap对象
p <- pheatmap(your_matrix,
              silent = TRUE,
              border_color = NA,
              show_rownames = FALSE,
              show_colnames = FALSE)

# 替换热图主区域为光栅化图层
matrix_pos <- which(p$gtable$layout$name == "matrix")
ht_matrix <- p$gtable$grobs[[matrix_pos]]
raster_matrix <- grid::rasterGrob(ht_matrix$gp$fill, 
                                  width = grid::unit(1, "npc"), 
                                  height = grid::unit(1, "npc"), 
                                  interpolate = FALSE)
p$gtable$grobs[[matrix_pos]] <- raster_matrix

# 导出文件
pdf("raster_heatmap.pdf", width = 16, height = 20)
grid::grid.draw(p)
dev.off()

方案3:更换优化过超大矩阵渲染的热图包

可直接改用ComplexHeatmap包,内置光栅化参数,调用更简便:

if (!require("ComplexHeatmap")) BiocManager::install("ComplexHeatmap")
library(ComplexHeatmap)

pdf("complex_heatmap.pdf", width = 16, height = 20)
Heatmap(your_matrix,
        border = NA,
        show_row_names = FALSE,
        show_column_names = FALSE,
        use_raster = TRUE, # 开启光栅化渲染
        raster_quality = 5) # 调整光栅渲染质量
dev.off()

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.05 02:36:04