hclust 之后 corrplot 中的标签顺序
order of labels in corrplot after 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)
这很好用,但如果我用 hclust
排序,标签的顺序不同,导致颜色错误:
如何获取hclust
之后标签的实际顺序,以便我可以重新分配颜色?我尝试使用以下内容:
myclust <- hclust(dist(M))
myclust$labels[myclust$order]
这给出的顺序与原始顺序不同,但仍然与 corrplot 中使用的顺序不同...
使用 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")
在我的数据集中,变量属于不同的组,我想为每个变量分配颜色:
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)
这很好用,但如果我用 hclust
排序,标签的顺序不同,导致颜色错误:
如何获取hclust
之后标签的实际顺序,以便我可以重新分配颜色?我尝试使用以下内容:
myclust <- hclust(dist(M))
myclust$labels[myclust$order]
这给出的顺序与原始顺序不同,但仍然与 corrplot 中使用的顺序不同...
使用 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")