在 ggcorrplot 中显示显着 p 值的星号

问题描述

我想问一下,是否可以在 ggcorrplot 中自定义 p 值表示,而不是用十字标记无关紧要的相关性,而是用星号标记显着的 p 值?希望看起来像这样:

enter image description here

解决方法

更新:所以我决定查看源代码并对其进行一些修改以生成我想要实现的格式。如果您复制 ggcorrplot() 函数的整个代码,那么在第 215 行原始代码是:

p.mat <- subset(p.mat,p.mat$value > sig.level)

将其替换为:

p.mat <- subset(p.mat,p.mat$value <= sig.level & p.mat$value != 0)

!= 0 部分假设您会选择完整的相关图,并且是为了防止中间的对角线带有星号,我相信没有 p 值实际上应该是 0,所以应该没问题。

然后在第 295 行,我在函数中添加了位置参数:

# matrix cell glyphs
  if (!is.null(p.mat) & insig == "pch") {
    p <- p + ggplot2::geom_point(
      data = p.mat,mapping = ggplot2::aes_string(x = "Var1",y = "Var2"),shape = pch,size = pch.cex,color = pch.col,position = position_nudge(x=0.35,y=0.16)
    )
  }

原件看起来像: enter image description here

虽然修改后的会是这样的: enter image description here 当然,根据视觉偏好,可以通过 x 和 y 参数自定义微调。然后在函数中,只需选择 pch = 8(这是星号)和 pch.cex = 1(星号的大小),这应该基本上达到了显示显着相关性的星号而不是显示不显着相关性的交叉的目标。希望以后能有用!