相关文章推荐

PyComplexHeatmap进阶教程:用python画热图的【行】/【列】注释信息

今天,给大家详细地介绍一下 PyComplexheatmap (https://github.com/DingWB/PyComplexHeatmap) 中 annotation 的使用方法,也就是如何用python在热图中添加【行】/【列】注释信息。比如样本的疾病状态(肿瘤或者正常样本、年龄、性别、分型等)。
如何用python画热图上, 下, 左、右不同方向的【行】/【列】注释信息
7 rows × 883 columns
883 rows × 11 columns
注释信息放在热图「上方」
图片
如果有很多图例,PyComplexHeatmap会自动将所有的图例按顺序排列,如果一列放不下,就 「自动增加一列」 ,用两列来画图例(figure legends)。如上图所示,就有2列图例。此外,在注释文字(比如Bovidae)与热图之间曲线的 形状和颜色都会随着文字的旋转角度和颜色一起变化 ,会 自动调整角度 ,使之与注释文字的角度相匹配。
注释信息放在热图「下方」
图片
如果想要把列注释信息放在热图下方,那就需要 「改变HeatmapAnnotation的顺序」 , 应该放在 「最后」 : 应该是倒数第二个。中的参数应该从45度变为-45度,因为旋转方向发生了改变。
此外,可以通过设置来将【行】名字挪到热图右边。值得注意的是, 「热图与图例之间的间隙是自动调节」 的,比如,当时,热图右边有了文字,图例就自动往右边挪了,不用我们额外设置。
【行】注释(annotation bar)的高度,可以通过 (mm)参数来设置,比如,在上图的中,我们将Family这个bar图的高度设置成了5mm,而Tissue的高度仍然是默认(4mm)。
注释信息放在热图「左方」
图片
我们首先把df进行转制(df.T),col_ha改成row_ha(现在变成了【行】注释)。我们可以通过改变参数来把【行】注释的标签(xlabel)放到热图上方(或者bottom,放到热图下方),另外,改变参数可以改变【行】注释标签的 旋转角度 颜色 (比如上图中的Tissue和Family,旋转45度,颜色为红色):。
注释信息放在热图「右方」
图片
同理,【行】注释信息也可以放到右侧。根据上述方法,我们也可以同时添加【行】和【列】注释,并调整注释文字和标签的颜色、旋转角度等。
如果大家需要用python来画热图的话,请试用一下,然后在公众号后台给一些反馈,欢迎提出一些改进建议。
 
推荐文章