R绘制TPM基因表达热图如何添加颜色标尺及显示全部基因名称
问题解决方案
你用的是R基础包的heatmap()函数,两个问题的解决方法如下:
1. 添加颜色标尺
基础heatmap()函数本身支持生成颜色标尺,你只需要在调用时添加legend = TRUE参数即可。如果需要自定义颜色映射范围和色板,可以搭配col参数调整:
# 自定义蓝白红三色渐变板,适配行缩放后的表达量数值 my_col <- colorRampPalette(c("navy", "white", "firebrick3"))(100) heatmap(exp.data_matrix, Rowv=NA, Colv=NA, scale="row", legend = TRUE, col = my_col)
如果出现色条和热图重叠的问题,可以通过margins参数调大画布边距避免遮挡。
2. 完整展示所有基因名称
基因名显示不全通常是行边距不足、或是基因数量过多导致字号被自动压缩,两种解决方法可按需选择:
- 方法1:直接调整
heatmap()的边距和行名字号
heatmap(exp.data_matrix, Rowv=NA, Colv=NA, scale="row", legend = TRUE, col = my_col, margins = c(5, 10), # 第一个数值为列边距,第二个为行边距,基因名越长可把第二个数值调得越大 cexRow = 0.8) # 调整行名字号,基因数量越多可以设置越小的数值
- 方法2:基因数量较多的场景更推荐用
pheatmap包绘制热图,对行名、色条的适配更友好,示例代码如下:
# 首次使用先安装包:install.packages("pheatmap") library(pheatmap) pheatmap(exp.data_matrix, cluster_rows = F, cluster_cols = F, # 对应你原代码不进行行列聚类的需求 scale = "row", show_rownames = T, fontsize_row = 6, # 按需调整行名字号 treeheight_row = 0, treeheight_col = 0) # 隐藏聚类树
你当前生成的热图效果如下:
内容的提问来源于stack exchange,提问作者Juhee
相关产品推荐
相关产品推荐

