如何以百分比显示相关矩阵

时间:2019-03-27 03:49:10

标签: r correlation ggcorrplot

我试图将相关性标签显示为百分比,而不是在数字-1和1之间显示它们。我能够使用软件包ggcorrplot来完成此操作,但是这样做剥夺了显示功能它们与颜色托盘一起显示,并仅显示灰色单元格颜色。就是这样

enter image description here

我可以使用软件包ggcorrplot来执行此操作,但是这样做剥夺了将其与色板一起显示的能力。

#if(!require(devtools)) install.packages("devtools")
#devtools::install_github("kassambara/ggcorrplot")
library(ggcorrplot)
corr <- round(cor(test3),3)
corr <- corr * 100
ggcorrplot(corr, hc.order = TRUE, type = "lower",
           lab = TRUE, colors = c("blue", "white", "red"))

有没有办法以百分比形式获得结果,并且仍然具有我们在相关矩阵图中通常具有的颜色。同样,任何将百分比添加到标签的方法都只能显示数字。

非常感谢!

1 个答案:

答案 0 :(得分:3)

corr <- round(cor(mtcars)^2,3)
corr <- corr * 100

diag(corr) = NA
corr[upper.tri(corr)] = NA

library(reshape2)
d = melt(corr)
d = d[!is.na(d$value),]

library(ggplot2)
ggplot(d, aes(x = Var1,
              y = Var2,
              fill = value,
              label = ifelse(is.na(value), "", paste0(value,"%")))) +
    geom_tile(color = "white") +
    scale_fill_gradientn(colors = c("green", "white", "red"), na.value = NA) +
    geom_text() +
    theme_bw()