[英]R corrplot colorlegend change range
我試圖使用corrplot
包在R中繪制相關矩陣。
我的問題是整個矩陣的最小和最大相關系數的范圍是(-0.2,0.2)。 我用corrplot
繪制矩陣,然后使用自定義colorRampPalette
col1<-colorRampPalette(c('red','yellow','green','blue'))
對於圖例的cl.lim=c(-0.2,0.2)
映射,所以我設置了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
顏色再次很好地區分整個值的分布。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.