Создайте цветовую гамму с помощью corrplot в R

#r #r-corrplot

#r #r-корреплот

Вопрос:

Я искал в Google и stack overflow ответ на свой вопрос в R, но не могу найти подходящий. У меня есть матрица, которую я импортирую в R, а затем использую corrplot для построения графика. Мой вопрос заключается в том, что у меня есть три корреляционные группы:

1: 0-<0.5

2: >0.5-0.7

3: >0.7

Мне нужен один цвет для каждой группы, поэтому красный для группы 1, синий для группы 2 и зеленый для группы 3

Есть ли способ сделать это?

вот некоторые фиктивные данные:

 library(corrplot)

data(mtcars)
M <- cor(mtcars)
set.seed(0)
corrplot(M,type='upper',method = "square",addCoef.col = "white")
 

Заранее большое спасибо!

Ответ №1:

может быть, попробуйте:

 data(mtcars)
M <- abs(cor(mtcars)) # absolute values 
M[M<=0.5]=-1          # your conditions
M[M>=0.7]=1
M[M != -1 amp; M != 1]=0
my.col <- colorRampPalette(c("red", "blue", "green"))  # your colors 
set.seed(0)
corrplot(M,type='upper',method = "color", col = my.col(3), cl.pos = "n")
 

видишь https://cran.r-project.org/web/packages/corrplot/vignettes/corrplot-intro.html

Комментарии:

1. вы хотите отобразить числовые коэффициенты корреляции или этого решения достаточно?

2. большое вам спасибо, это именно то, что я так долго искал. Добавление коэффициентов было бы неплохо, а также легенда, соответствующая условиям, была бы отличной, если это возможно? Извините, что не сообразил, когда дело доходит до подобных вещей. @Lukas Weber

3. Извините, есть ли еще способ раскрасить первую диагональ белым цветом? Я попытался изменить это: df2[df2== 0.0]=-0.5, а затем следовал: df2[df2<= 0.5]= -1, но просто снова меняет первое значение на все -1.

4. Я думал об этом, но все дополнительное было бы халтурным, так как вам понадобились бы две матрицы в качестве входных данных, которые, я думаю, не поддерживаются стандартной функциональностью corplot, извините!