R - 在 x 轴和 y 轴上使用具有不同变量的 corrplot

标签 r r-corrplot

众所周知,corrplot 可用于创建漂亮的图表,可视化一组变量之间的关系强度,x 轴上的变量与 y 轴上的变量相同(通常是对称的,除非您在上对角线上的指标与下对角线上的指标不同)。我想以稍微不同的方式使用 corrplot。

假设我有一个如下所示的数据框:

var1 var2 beta  se   pvalue
X    a    .01   .01  .35
X    b    -.02  .02  .45
X    c    .04   .01  .55
X    d    .04   .01  .55
Y    a    .06   .01  .01
Y    b    -.02  .02  .25
Y    c    .04   .01  .55
Y    d    .02   .01  .55
Z    a    .04   .01  .01
Z    b    -.01  .01  .45
Z    c    .03   .02  .02
Z    d    .04   .02  .02

我能否使用 corrplot 创建一个图形,其中 x 轴上有变量 X、Y 和 Z,Y 轴上有 a、b、c 和 d?如果是,如何?

附言。我要绘制的值是 beta。

编辑:我将示例文件编辑为关于 x 和 y 上的变量的非对称

最佳答案

您可以将数据重新整形为方阵,然后将其输入 corrplot。 即使生成的矩阵不是正方形,这也有效。

## Your new data
Dat = read.table(text="var1 var2 beta  se   pvalue
X    a    .01   .01  .35
X    b    -.02  .02  .45
X    c    .04   .01  .55
X    d    .04   .01  .55
Y    a    .06   .01  .01
Y    b    -.02  .02  .25
Y    c    .04   .01  .55
Y    d    .02   .01  .55
Z    a    .04   .01  .01
Z    b    -.01  .01  .45
Z    c    .03   .02  .02
Z    d    .04   .02  .02",
header=TRUE)

## Now reshape the data  (same as before)
wide = reshape(Dat[,1:3], idvar = c("var1"),
    timevar="var2", direction = "wide")
rownames(wide) = wide$var1
wide = wide[,-1]
colnames(wide) = sub("beta.", "", colnames(wide))

## Pass it to corrplot
library(corrplot)
corrplot(as.matrix(wide), is.corr=FALSE, tl.srt=0)

Corrplot

关于R - 在 x 轴和 y 轴上使用具有不同变量的 corrplot,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47404466/

相关文章:

r - 在 `dplyr` 动词 : `select` and `arrange` working differently 中使用不带引号的字符串

R - 使用矩阵布局绘制多个栅格

R corrplot - 获得小的压缩图

R:标题用par()减半

r - 将 corrplot 输出转换为 grob

R的switch语句不是一种特殊形式,因此它很慢吗?

r - GGally:从图中提取数据

r - 如何修复多个观察中缺少日期的时间序列?

r - 如何在 R 中读取相关矩阵并形成散点图矩阵

r - 如何在 RStudio 中安装.packages corrplot?