Как отобразить матрицу корреляции в процентах

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

Я смог сделать это с помощью пакета 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 ответ

Решение
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()
Другие вопросы по тегам