R corrplot colorlegend更改范围

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了R corrplot colorlegend更改范围相关的知识,希望对你有一定的参考价值。

我试图使用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个自定义调色板中的整个色域,但在范围内(-0.2,0.2)因此,我只有2种颜色而不是10种颜色。

答案

对此的解决方案是重复颜色范围,因此,获得下半部...

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

color = c(mypal,mypal)

corrplot(M, col=color)
另一答案

我遇到了类似的问题,但主要是非常高的相关性。这使得很难区分不同的点而不在我的调色板中定义大量未使用的颜色。

我的解决方案是在绘图之前将我的相关性重新调整到范围(-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可以再次很好地区分整个值的分布。

以上是关于R corrplot colorlegend更改范围的主要内容,如果未能解决你的问题,请参考以下文章

R语言corrplot

使用 R 为 corrplot 中的每一行添加颜色

R corrplot:如何修改p值的显示位数?

R语言实战小案例-画相关矩阵图案例

R语言实战小案例-画相关矩阵图案例

[R语言] Heatmap绘图经验总结