2015-01-23 7 views
3

Я пытаюсь построить в R матрицу корреляции, используя пакет corrplot.
Моя проблема заключается в том, что диапазон минимальных и максимальных коэффициентов корреляции всей матрицы равен (-0,2,0,2). Я построить матрицу с corrplot и я использую пользовательский colorRampPalette, скажемR corrplot colorlegend диапазон изменения

col1<-colorRampPalette(c('red','yellow','green','blue')) 

для палитрой легенды, поэтому я col=col1(10), и я поставил cl.lim=c(-0.2,0.2).

Когда цветной график появляется от -0,2 до 0,2, но только с двумя цветами, вместо этого я бы хотел, чтобы цветная композиция со всем спектром цветов в 10 бункерах пользовательской палитры, но в диапазоне (- 0,2,0,2), поэтому вместо двух цветов у меня будет 10 цветов.

+1

Вы нашли решение? – DemetriusRPaula

ответ

1

Решение этой проблемы было дублировать цветовой диапазон, а значит, получить вторую половину ...

mypal = jet.colors(1000) # jet.colors from library(matlab) 

color = c(mypal,mypal) 

corrplot(M, col=color) 
0

я столкнулся с подобной проблемой, но были в основном очень высокую корреляцию. Это затрудняло различать разные точки, не определяя много неиспользованных цветов в моей палитре.

Мое решение было отмасштабировать мои корреляции в диапазоне (-1, 1) (что диапазон берет на себя corrplot) до черчения:

corrplot2 <- function(corr, col) { 
    a = 2/(max(corr) - min(corr)) 
    b = 1 - (2/(1 - (min(corr)/max(corr)))) 
    y = a * corr + b 
    corrplot(y, method="circle", bg="grey92", col=col, 
      order="hclust", addrect=4, cl.lim=c(-1, 1)) 
} 

Таким образом, полное распределение значений может снова быть хорошо различались с помощью моих цветов выбора col.

Смежные вопросы