我想在 P 值 < 0.05 的热图中加上星号。我有一个单独的电子表格,其中包含我读入 R 的 P 值以及随后的热图,但是,我正在使用的函数似乎没有将星号放在正确的单元格中。例如,在下图中,没有附加到 rho = 0 单元格的 P 值,但那里放置了星号。
电子表格如下所示。对于所有不适用的 P 值,我输入“1”以避免错误。如果在修复星号位置之外有更好的方法来做到这一点,请告诉我。
我正在使用的代码如下:
library(circlize)
library(ComplexHeatmap)
library(Hmisc)
sx_syn_p <- read.csv('spear_synx1_p.csv', header=TRUE)
Shime1x_syn_spearman1 <- Heatmap(sx_syn, circlize::colorRamp2(c(-1, -0.5, 0, 0.5, 1),
c('#d7191c', '#fdae61',
'#FFFFFF', '#abd9e9',
'#2c7bb6')),
column_names_gp=grid::gpar(fontsize=20,
col=c(rep('#4daf4a', 8), rep('#984ea3',7))),
row_names_gp=grid::gpar(fontsize=20,
col=c(rep('#4daf4a', 8), rep('#984ea3',7))),
heatmap_legend_param=list(title="Spearman's rho",
direction='horizontal',
at = c(-1, -0.5, 0, 0.5, 1)),
cell_fun = function(j, i, x, y, w, h, fill){
if(sx_syn_p[i, j] < 0.05) {
grid.text('*', x, y)
}
})
sx_syn1_spear <- draw(Shime1x_syn_spearman1, heatmap_legend_side='top')
我认为函数根据电子表格中的 P < 0.05 输入星号,但输入似乎没有正确放置。