R - corrplot - 寻找一种在视觉上区分列组的方法

R - corrplot - looking for a way to visually distinguish groups of columns

以下代码:

Dat = read.table(text="varA1 varA2 varA3  varB1  varB2 varC1 varC2 varC3
             .01   .01  .35    .05    .06   .01   .01  .25
             .02   .21  .31    .34    .06  .04   .01  .35
             .01   .03  .35    .05    .03  .05   .31  .33
             .45   .01  .32    .08    .26  .11   .04  .35
             .01   .01  .35    .05    .03  .01   .33  .25",
             header=TRUE)

library(corrplot)
corrplot(as.matrix(Dat), is.corr=FALSE, tl.srt=45)

创建此图:

是否可以更新代码以突出显示我有三组变量的事实,即

所以要么在所有三个周围放置一个矩形(类似于 corrplot 中的选项 hclust,不幸的是它不允许自定义矩形),就像我在这里使用 paint 所做的那样:

或者用三种不同的颜色打印 headers,或者我可以通过视觉区分三组变量的任何其他方式?欢迎任何提示,非常感谢!

您可以只使用 segments 来绘制边框。

segments(c(0.5,3.5,5.5,8.5), rep(0.5,4), 
    c(0.5,3.5,5.5,8.5), rep(5.5,4), lwd=3)
segments(c(0.5, 0.5), c(0.5, 5.5), c(8.5, 8.5), c(0.5,5.5), lwd=3)

您可以用不同的颜色勾勒和填充背景

ColorScheme = c("#FFEEEE", "#EEFFEE", "#EEEEFF")
Groups = c(rep(1,15), rep(2,10), rep(3, 15))
corrplot(as.matrix(Dat), is.corr=FALSE, tl.srt=45, bg=ColorScheme[Groups])

segments(c(0.5,3.5,5.5,8.5), rep(0.5,4), 
    c(0.5,3.5,5.5,8.5), rep(5.5,4), lwd=3)
segments(c(0.5, 0.5), c(0.5, 5.5), c(8.5, 8.5), c(0.5,5.5), lwd=3)