最近在分析单细胞数据,用DoHeatmap画热图的时候遇到一个问题,列标签(也就是每个细胞亚群的名字)出界了,在最后保存的图片里面不能完整显示。从下面的热图中可以看到,最后一个亚群Platelet超出了绘图区域,无法完整显示。
代码语言:javascript复制load("pbmc3k_final.rds")
library(Seurat)
library(dplyr)
pdf('1.pdf', width = 14, height = 10)
DoHeatmap(scRNA, features = top5$gene, size = 3) NoLegend()
dev.off()
查看一下DoHeatmap这个函数的参数
其中有三个参数是跟label(标签相关)
代码语言:javascript复制size:控制标签字体的大小。
hjust:微调标签摆放的位置。
angle:控制标签摆放的角度。
那么下面我们通过修改这几个参数来调整标签的大小,位置和角度,让它能完整的显示在绘图区域
代码语言:javascript复制pdf('2.pdf', width = 14, height = 10)
DoHeatmap(scRNA, features = top5$gene, size = 3, angle = -50, hjust=0.8) NoLegend()
dev.off()
得到的结果如下
当然我们还有另一个解决方案,就是不显示标签,通过legend来展示每个亚群的名称,只需要去掉NoLegend(),并将label设置成FALSE就可以了
代码语言:javascript复制DoHeatmap(scRNA, features = top5$gene, label=F)
会得到如下的结果,我们可以通过每个亚群的颜色跟legend里面亚群的名字对应起来。
如果大家有更好的解决方法,欢迎下面留言讨论。
关注“生信交流平台”公众号,后台回复"DoHeatmap",获取pbmc3k_final.rds文件。