【问题标题】:R corrplot: Plot correlation coefficients along with significance stars?R corrplot:将相关系数与显着性星一起绘制?
【发布时间】:2020-08-03 10:33:13
【问题描述】:

使用 R corrplot,我还没有找到一个解决方案,将框中的相关系数连同它们的显着性一起绘制,即 0.84*** 这是仅绘制重要性星的代码。相关系数怎么加进去?

M<-cor(mtcars)
res1 <- cor.mtest(mtcars, conf.level = .95)
corrplot(cor(mtcars),
     method="square",
     type="lower",
     p.mat = res1$p,
     insig = "label_sig",
     sig.level = c(.001, .01, .05),
     pch.cex = 0.8,
     pch.col = "red",
     tl.col="black",
     tl.cex=1,
     outline=TRUE)

如果我按照第一个答案的建议添加 addCoef.col = "black", 文本覆盖了重要性星,因此它们不再被真正看到:

【问题讨论】:

    标签: r correlation significance


    【解决方案1】:

    重要星的位置由place_points 函数在corrplot 函数中定义。

    问题:

    如果两者都显示,相关系数和显着性水平应该显示,它们重叠(我用黄色表示星星,因为我有一些色觉问题......)。

    library(corrplot)
    #> corrplot 0.90 loaded
    
    M<-cor(mtcars)
    res1 <- cor.mtest(mtcars, conf.level = .95)
    
    corrplot(cor(mtcars),
             method="square",
             type="lower",
             p.mat = res1$p,
             insig = "label_sig",
             sig.level = c(.001, .01, .05),
             pch.cex = 0.8,
             pch.col = "yellow",
             tl.col="black",
             tl.cex=1,
             addCoef.col = "black",
             tl.pos="n",
             outline=TRUE)
    

    reprex package (v2.0.1) 于 2021 年 10 月 13 日创建

    快速且临时(每次新加载 corrplot 包时都必须重新执行此步骤)解决方案:

    corrplot 函数中更改place_points 函数。为此,请运行:

    trace(corrplot, edit=TRUE)
    

    然后在第 443 行替换

    place_points = function(sig.locs, point) {
      text(pos.pNew[, 1][sig.locs], pos.pNew[, 2][sig.locs], 
           labels = point, col = pch.col, cex = pch.cex, 
           lwd = 2)
    

    与:

    # adjust text(X,Y ...) according to your needs, here +0.25 is added to the Y-position    
    place_points = function(sig.locs, point) {
          text(pos.pNew[, 1][sig.locs], (pos.pNew[, 2][sig.locs])+0.25, 
               labels = point, col = pch.col, cex = pch.cex, 
               lwd = 2)
    

    然后点击“保存”按钮。

    结果:

    library(corrplot)
    #> corrplot 0.90 loaded
    
    #change the corrplot function as described above 
    trace(corrplot, edit=TRUE)
    #> Tracing function "corrplot" in package "corrplot"
    #> [1] "corrplot"
    
    M<-cor(mtcars)
    res1 <- cor.mtest(mtcars, conf.level = .95)
    
    corrplot(cor(mtcars),
             method="square",
             type="lower",
             p.mat = res1$p,
             insig = "label_sig",
             sig.level = c(.001, .01, .05),
             pch.cex = 0.8,
             pch.col = "yellow",
             tl.col="black",
             tl.cex=1,
             addCoef.col = "black",
             tl.pos="n",
             outline=TRUE)
    

    reprex package (v2.0.1) 于 2021 年 10 月 13 日创建

    【讨论】:

    • 变量名不再显示...有什么解决办法吗?
    • @Olympia。只需将tl.pos="n" 替换为tl.pos="ld"。见具体标注here
    • 很高兴听到。现在解决了你的问题了吗?
    • 好的,谢谢!
    【解决方案2】:

    您只需将选项addCoef.col = "black" 添加到corrplot

    【讨论】:

    • 这个问题是现在相关系数的文本覆盖了重要性星......有什么解决方案吗?
    • 我不确定这是否可能,也许您可​​以混合显着性水平开始于对角线下方和系数上方对角线。有没有看这里:jamesmarquezportfolio.com/correlation_matrices_in_r.html
    【解决方案3】:

    为了修复星星的颜色冲突,我采用了这种方法来制作更大的白色星星。我将它与以下颜色和布局一起使用。我无法避免重叠,但它对我来说足够清晰:

    cex.before <- par("cex")
    par(cex = 0.7)
    col <- colorRampPalette(c("#BB4444", "#EE9988", "#FFFFFF", "#77AADD", "#4477AA"))
    corrplot::corrplot(cor(mtcars), 
        method="color", 
        col=col(200),  
        type="lower", 
        # Combine with significance
        p.mat = res1$p, 
        insig = "label_sig",
        sig.level = c(.001, .01, .05), 
        pch.cex = 3, # Increase size of stars
        pch.col = "white", # Colour of stars
        # hide correlation coefficient on the principal diagonal
        diag=FALSE,
        addCoef.col = "black", # Add coefficient of correlation
        tl.col="black", tl.srt=45, #Text label color and rotation
        tl.cex = 1/par("cex"), cl.cex = 1/par("cex") #Reduce text size of coefficients               
    )
    par(cex = cex.before)
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2021-05-24
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2015-10-01
      • 2021-08-18
      • 2017-08-18
      • 1970-01-01
      相关资源
      最近更新 更多