【问题标题】:corrplot blank and no text for insignificant valuescorrplot 空白,无意义值的文本
【发布时间】:2021-01-11 14:29:01
【问题描述】:

根据文档here,可以自定义无关紧要的值的行为,以隐藏它们。

文档:

文档告诉我们如何做我感兴趣的两件事:

  • 相关系数(addCoef.col = "black"
  • 空白无关紧要 (sig.level=0.01, insig="blank")

问题:

当使用上述三个标签(连同其他标签,完整列表如下)时,相关系数也会出现在无关紧要的值上。

我想要什么:

  • 除无关紧要的框外,所有框都有相关系数和颜色
  • 签名框必须完全为空

我做什么:

cr<-colorRampPalette(c("lightblue","white","yellow"))(200)
p <- cor.mtest(dataCor)
corMat=cor(dataCor)

corrplot(corMat, type="upper",method="color",order="original"
            , col=cr
            , tl.col="black"
            , addCoef.col="black",
            , diag=FALSE,number.cex=.7
            , insig="blank"
            , p.mat = p,sig.level=0.01,tl.srt = 45)

结果(摘录): 目标是删除 prop02 x prop04 的“-0.01”和所有零

编辑:我知道道具不按顺序排列,就我而言,这是故意的(它们有不同的名称并以相关方式分组)

更新: 我找到了这个帖子:corrplot shows insignificant correlation coefficients even when insig = "blank" is set

它“有效”(仍然是一个肮脏的修复),但仅适用于对角线的方阵。如何使它适用于type="upper"diag=FALSE

【问题讨论】:

    标签: r r-corrplot


    【解决方案1】:

    解决此问题的一种方法是创建一个包含每个单元格文本颜色的颜色矩阵。

    addCoef.col 参数可以采用矩阵。该矩阵必须对应于其他参数diagtype 给出的最终形状(在这种情况下:diag=TRUE,type=upper

    创建此矩阵的一种方法是从 p 值矩阵创建它,如下所示。

    pval <- 0.01 #threshold
    p <- cor.mtest(dataCor) # compute p-values
    corMat <- cor(dataCor) # compute correlation values
    
    #create the color matrix from the p-value matrix, select only necessary data
    mycol <-ifelse(c(p > pval), "white", "black")[upper.tri(p, diag = FALSE)]
    

    这里发生了什么:

    • ifelse 将根据第一个参数中的逻辑值返回相应的分支(此处为白色或黑色)。
    • 当 p 数组中的值大于 p 值阈值时,c(p &gt; pval) 创建一个逻辑数组为 TRUE。这些是要屏蔽的值。从技术上讲,情况可能更复杂: c(p &gt; pval | abs(corMat)&gt;0.5)。在这种情况下,p值和相关系数都有一个条件。它对于对比度问题很有用,如果色带太暗而无法实现高相关性,则应使用白色文本。
    • [upper.tri(p, diag = FALSE)] 仅用于选择我们感兴趣的值。upper.tri() 返回一个逻辑数组,当该值属于所需的矩阵上侧时为 TRUE。^

    呈现从 -100 到 100 的值更便于阅读和理解。 在某些情况下,在 corrplot 参数中使用 addCoefasPercent=TRUE,cl.lim = c(-100, 100) 可以说更好。

    查看此answer 以了解如何重新排序(或继续排序),即您使用 order 参数指定的内容(可能的值为 "AOE", "FPC", "hclust", "alphabet"

    【讨论】:

      猜你喜欢
      • 2015-09-29
      • 2022-07-04
      • 1970-01-01
      • 1970-01-01
      • 2010-10-04
      • 2014-02-02
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多