#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, извините!