我试图使用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种颜色。
答案 0 :(得分:2)
对此的解决方案是重复颜色范围,因此,得到下半部分......
mypal = jet.colors(1000) # jet.colors from library(matlab)
color = c(mypal,mypal)
corrplot(M, col=color)
答案 1 :(得分: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
可以再次很好地区分整个值的分布。