我在热图上做了一个列注释。我用ComplexHeatmap。
我对注释的输入是:
vector_pvalues_adj <- c(0.3778364, 0.0001000, 0.2122000, 0.4174714, 0.3778364, 0.4799250, 0.1613250, 0.4861000, 0.4174714, 0.1008000, 0.0141000, 0.4174714, 0.0001000, 0.0018000, 0.4861000, 0.4799250, 0.0001000, 0.0001000)守则是:
library(ComplexHeatmap)
column_ha3 = HeatmapAnnotation("-log adj p-value"= anno_barplot(-log(vector_pvalues_adj)), gp = gpar(fill = "red"), height = unit(20, "mm"))

我要加一个an
abline(h = -log(0.05), col= "red")

但我不能,有人能给我建议怎么做吗?
发布于 2022-11-04 01:35:29
为了添加类似于水平线的内容,可以使用ComplexHeatmap函数decorate_annotation和grid包。
这增加了虚线。
library(ComplexHeatmap) # BiocManager::install("ComplexHeatmap")
library(grid)
# original code from question
vector_pvalues_adj <- c(0.3778364, 0.0001000, 0.2122000, 0.4174714,
0.3778364, 0.4799250, 0.1613250, 0.4861000,
0.4174714, 0.1008000, 0.0141000, 0.4174714,
0.0001000, 0.0018000, 0.4861000, 0.4799250,
0.0001000, 0.0001000)
# original code from question
column_ha3 = HeatmapAnnotation(
"-log adj p-value" = anno_barplot(-log(vector_pvalues_adj)),
gp = gpar(fill = "red"), height = unit(20, "mm"))
# added for context
Heatmap(matrix(rnorm(18*18), 18), name = "mat", top_annotation = column_ha3)
# 'decorate' "-log adj p-value"
decorate_annotation("-log adj p-value", {
grid.lines(c(.5, 18.5), c(4, 4), gp = gpar(lty = 2, col = "red"),
default.units = "native")
})在最后一个函数中,c(.5, 18.5)是x轴值,它总是等价于列数,或者根据数据(使用.5 get's you to the边):18。
对于y,我把它设为4开始,4结束,所以你得到一条水平线。在gpar中,我使用了lty = 2,它给了我一个虚线,而不是默认的实线。)

https://stackoverflow.com/questions/74308601
复制相似问题