5

我正在尝试使用corrplot包在 R 中绘制相关矩阵。
我的问题是整个矩阵的最小和最大相关系数的范围是(-0.2,0.2)。我绘制矩阵corrplot并使用自定义colorRampPalette,比如说

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

对于图例的颜色图,所以我设置了col=col1(10),我设置了cl.lim=c(-0.2,0.2).

然而,当我看到绘图时,colorlegend 出现在 -0.2 到 0.2 之间,但只有 2 种颜色,而我想要的是一个 colorlegend,其中包含自定义调色板的 10 个 bin 中的整个颜色光谱,但在范围内(-0.2,0.2)所以我将有 10 种颜色,而不是只有 2 种颜色。

4

2 回答 2

3

解决方案是复制颜色范围,所以,得到下半部分......

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

color = c(mypal,mypal)

corrplot(M, col=color)
于 2016-08-10T14:46:19.293 回答
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

于 2018-03-02T14:55:12.090 回答