求推荐可绘制每行含多组关联信息热图的R语言包
实现带行附加信息热图的R工具包推荐
以下几个R工具包可以满足你绘制带多行相关信息(如产品、名称、编号)热图的需求:
1. ComplexHeatmap
这是绘制复杂热图的首选工具,原生支持在热图的行/列两侧添加多组注释信息,完全匹配你的需求。通过rowAnnotation()函数可以轻松定义多行附加信息,并且能和热图无缝整合。
示例代码:
library(ComplexHeatmap) library(circlize) # 构造模拟数据 set.seed(123) heat_data <- matrix(rnorm(50), nrow = 10) row_info <- data.frame( 产品 = sample(c("A", "B", "C"), 10, replace = TRUE), 名称 = paste0("产品_", 1:10), 编号 = sprintf("ID%02d", 1:10) ) # 创建行注释 row_anno <- rowAnnotation( df = row_info, col = list(产品 = c("A" = "#FF9999", "B" = "#99CCFF", "C" = "#99FF99")), show_annotation_name = TRUE ) # 绘制热图 Heatmap(heat_data, name = "数值", left_annotation = row_anno, row_names_side = "right")
2. pheatmap
这个工具包更轻量,通过annotation_row参数可以直接传入包含附加信息的数据框,自动在热图左侧生成注释列。如果需要调整注释的样式,可以配合annotation_colors参数自定义颜色。
示例代码:
library(pheatmap) # 用上面的模拟数据 pheatmap(heat_data, annotation_row = row_info, annotation_colors = list(产品 = c("A" = "#FF9999", "B" = "#99CCFF", "C" = "#99FF99")), show_rownames = FALSE)
3. ggplot2
如果你需要高度自定义的布局,可以用ggplot2手动构建。将热图数据和附加信息整合到同一个数据框,用geom_tile()绘制热图主体,再通过额外的文本图层展示附加信息。
示例代码:
library(ggplot2) library(tidyr) # 整理数据格式 heat_df <- heat_data %>% as.data.frame() %>% mutate(产品 = row_info$产品, 名称 = row_info$名称, 编号 = row_info$编号, 行ID = 1:n()) %>% pivot_longer(cols = starts_with("V"), names_to = "列ID", values_to = "数值") # 绘制带附加信息的热图 ggplot(heat_df, aes(x = 列ID, y = 行ID)) + geom_tile(aes(fill = 数值)) + geom_text(aes(y = 行ID, x = 0, label = 产品)) + geom_text(aes(y = 行ID, x = -1, label = 名称)) + geom_text(aes(y = 行ID, x = -2, label = 编号)) + scale_fill_viridis_c() + theme_minimal() + theme(axis.text.y = element_blank(), axis.title.y = element_blank())
内容的提问来源于stack exchange,提问作者hana ghajar
相关产品推荐
相关产品推荐

