R corrplot colorlegend 变化范围
Posted
技术标签:
【中文标题】R corrplot colorlegend 变化范围【英文标题】:R corrplot colorlegend change range 【发布时间】:2015-03-22 11:26:48 【问题描述】:我正在尝试使用 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 种颜色。
【问题讨论】:
你找到解决办法了吗? 【参考方案1】:解决方案是复制颜色范围,所以,得到下半部分......
mypal = jet.colors(1000) # jet.colors from library(matlab)
color = c(mypal,mypal)
corrplot(M, col=color)
【讨论】:
【参考方案2】:我遇到了类似的问题,但相关性大多非常高。如果不在我的调色板中定义大量未使用的颜色,就很难区分不同的点。
我的解决方案是在绘图之前将我的相关性重新调整到(-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 变化范围的主要内容,如果未能解决你的问题,请参考以下文章