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)
创建此图:
是否可以更新代码以突出显示我有三组变量的事实,即
- 变量A1、变量A2、变量A3
- 变量B1,变量B2
- varC1、varC2、varC3
所以要么在所有三个周围放置一个矩形(类似于 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)
以下代码:
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)
创建此图:
是否可以更新代码以突出显示我有三组变量的事实,即
- 变量A1、变量A2、变量A3
- 变量B1,变量B2
- varC1、varC2、varC3
所以要么在所有三个周围放置一个矩形(类似于 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)