2016-11-18 46 views
2

在我的數據集後,變量屬於不同的羣體,我想指定顏色爲每個變量:爲了標籤在corrplot hclust

mycolors <- rep(NA,11) 
names(mycolors) <- names(mtcars) 
mycolors[1:4] <- 'green' # mpg, cyl, disp, hp 
mycolors[5:9] <- 'red' # drat, wt, qsec, vs, am 
mycolors[10:11] <- 'blue' # gear, carb 

現在我想建立一個相關矩陣和顏色標籤:

M <- cor(mtcars) 
corrplot(M, tl.col = mycolors) 

no order

這工作得很好,但如果我hclust訂購,標籤在不同的順序,這使得顏色錯走: enter image description here

如何獲得hclust後標籤的實際順序,以便我可以重新分配顏色?我嘗試使用以下命令:

myclust <- hclust(dist(M)) 
myclust$labels[myclust$order] 

這給從原來的不同,但還是不一樣的corrplot使用的訂單的訂貨......

回答

3

使用一個想法從here你可以重新排序您的顏色矢量,以便它符合hclust排序矩陣的順序。

ord <- corrMatOrder(M, order="hclust") 
newcolours <- mycolors[ord] 
newcolours 
# carb  wt  hp  cyl disp qsec  vs  mpg drat  am 
# "blue" "red" "green" "green" "green" "red" "red" "green" "red" "red" 
# gear 
# "blue" 
corrplot(M, tl.col = newcolours, order = "hclust") 
+0

太好了,非常感謝! –

+0

不客氣。 – user20650