R corrplot: отображать коэффициенты корреляции вместе со звездами значимости?

Используя R corplot, я не нашел решения, в котором коэффициенты корреляции в прямоугольниках отображаются вместе с их значениями, то есть 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, текст перекрывает звездочки значимости, поэтому их больше нельзя увидеть: введите здесь описание изображения


person Olympia    schedule 03.08.2020    source источник


Ответы (2)


Вам нужно только добавить опцию addCoef.col = "black" к corrplot

person iago    schedule 03.08.2020
comment
Проблема в том, что теперь текст коэффициента корреляции перекрывает звездочки значимости... какое-нибудь решение для этого? - person Olympia; 03.08.2020
comment
Я не уверен, что это возможно, возможно, вы можете смешать уровни значимости, начиная с нижней диагонали, и коэффициенты, расположенные выше диагонали. Вы смотрели здесь: jamesmarquezportfolio.com/correlation_matrices_in_r.html? - person iago; 03.08.2020

Чтобы исправить несовпадение цветов звезд, я адаптировал этот подход, чтобы большие звезды были белого цвета. Я использую это со следующими цветами и макетом. Я не могу избежать дублирования, но мне достаточно разборчиво для работы:

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)
person JamesLee    schedule 11.06.2021