R corrplot colorlegend диапазон изменения

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

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 цветов.


person cristis    schedule 23.01.2015    source источник
comment
ты нашел решение?   -  person DemetriusRPaula    schedule 10.08.2016


Ответы (2)


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

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

color = c(mypal,mypal)

corrplot(M, col=color)
person DemetriusRPaula    schedule 10.08.2016

Я столкнулся с похожей проблемой, но в основном имел очень высокие корреляции. Из-за этого было трудно различать разные точки без определения множества неиспользуемых цветов в моей палитре.

Мое решение состояло в том, чтобы перемасштабировать мои корреляции в диапазоне (-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.

person MFreidank    schedule 02.03.2018