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

ComplexHeatmap:通过调整透明度高亮矩阵单元格

矩阵单元格透明度高亮实现方案

直接通过修改cell_fun的绘制逻辑,就能实现基于highlight_matrix的透明度高亮效果:

# 生成基础矩阵
mat <- matrix(runif(25), nrow = 5, ncol = 5)

# 定义高亮单元格矩阵
highlight_matrix <- matrix(sample(c(TRUE, FALSE), 25, replace = TRUE), nrow = 5)

# 设置颜色映射
my_colors <- circlize::colorRamp2(c(0,1), c("#440154", "#FDE725"))

# 绘制带透明度高亮的热图
ComplexHeatmap::Heatmap(mat,
                        col = my_colors,
                        cell_fun = function(j, i, x, y, width, height, fill) {
                          # 根据高亮规则设置透明度:TRUE不透明,FALSE半透明
                          alpha_level <- if(highlight_matrix[i, j]) 1 else 0.3
                          # 重新绘制单元格,应用透明度
                          grid.rect(x, y, width = width, height = height, 
                                    gp = gpar(fill = fill, alpha = alpha_level, col = NA))
                        })

关键说明

  • alpha_level可自行调整:取值范围0(完全透明)到1(完全不透明),示例中给FALSE单元格设为0.3的半透明效果
  • col = NA用于隐藏单元格边框,若需要边框可删除该参数或指定边框颜色
  • 通过grid.rect覆盖默认单元格绘制,确保透明度设置生效

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.21 14:31:00