如何在R的ComplexHeatmap中自定义符号图例?
在ComplexHeatmap中添加自定义符号图例并保留原有图例
你可以通过ComplexHeatmap包的Legend()函数创建自定义符号图例,再结合draw()函数将其与原有热图图例合并显示。以下是修改后的完整代码:
library(ComplexHeatmap) # 原有数据与行注释部分 rnames <- c("+","+","+", "-", "-","δ","δ","δ","δ", "*","*","*","h","h","h","h","h","h","h","h","u","u","u","u","u","u") ha = rowAnnotation(foo = anno_mark(at = c(1:3,4:5,6:9,10:12,13:20,21:26), labels = rnames)) names(rnames) = unique(A) # 绘制热图 ht = Heatmap(data2, name = "Occurance", cluster_rows = FALSE, cluster_columns = FALSE, column_title = "已知RBP基因LCD重叠区域的氨基酸出现频率", row_title = "氨基酸", column_title_gp = gpar(fontsize = 20), row_title_gp = gpar(fontsize = 30), row_split = A, right_annotation = ha, row_names_side = "left", row_names_gp = gpar(fontsize = 15) ) # 定义自定义图例的符号与对应标签 symbols <- c("δ", "*", "h", "u", "+", "-") labels <- c("极性", "特殊", "疏水性", "独特性", "正电性", "负电性") # 创建自定义图例 custom_legend <- Legend( title = "类型", type = "text", text = symbols, labels = labels, text_gp = gpar(fontsize = 15), # 设置符号大小 labels_gp = gpar(fontsize = 12) # 设置标签大小 ) # 合并原有图例与自定义图例并绘制 draw(ht, annotation_legend_list = list(custom_legend), merge_legends = TRUE)
关键说明:
Legend()函数中type="text"用于直接显示文本符号,text参数传入自定义符号,labels传入对应含义draw()函数的annotation_legend_list参数用于添加自定义图例,merge_legends=TRUE确保原有"Occurance"图例和自定义图例合并展示- 可通过
text_gp和labels_gp调整符号与标签的字体大小、样式
内容的提问来源于stack exchange,提问作者Dr. Coke
相关产品推荐
相关产品推荐

