星号值错误地放置在热图上

Posted

技术标签:

【中文标题】星号值错误地放置在热图上【英文标题】:Values for asterisks incorrectly placed on heat map 【发布时间】:2021-12-22 12:37:24 【问题描述】:

我想在 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

【问题讨论】:

您能否制作一个可重现的小示例(例如 3x3)并以复制/粘贴的方式而不是电子表格的图片来共享数据? 对不起,是的,我下次会这样做。我找到了一种解决方法,我会在评论中发布。 【参考方案1】:

我设法通过删除电子表格中的第一列标签并重新运行代码来解决此问题。我认为将数据框转换为矩阵将根据this example 提供进一步的保证。我的代码的问题是sx_syn 的顺序与sx_syn_p 的顺序不同。

【讨论】:

以上是关于星号值错误地放置在热图上的主要内容,如果未能解决你的问题,请参考以下文章

热图 Seaborn fmt='d' 错误

缺少 JTextField 并且布局错误地放置了 JButton

如何在热图中注释和正确放置数字

使用传单函数 add_heatmap() 或 addHeatmap() 在 R 上创建热图

如何在绘制多个热图时修复plt.tight_layout()错误

seaborn 热图显示轴标签,但当 df.corr 为 NaN 时没有值