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
相关产品推荐
相关产品推荐

