R - 在 x 轴和 y 轴上使用具有不同变量的 corrplot
R - Using corrplot with different variables on x and y axes
你们可能都知道,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 的图形吗?如果是,如何?
PS。我要绘制的值是 beta。
编辑:我将示例文件编辑为关于 x 和 y 上的变量 nr 的非对称
您可以将数据重新整形为方阵,然后将其输入 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 可用于创建漂亮的图表,可视化一组变量之间关系的强度,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 的图形吗?如果是,如何?
PS。我要绘制的值是 beta。
编辑:我将示例文件编辑为关于 x 和 y 上的变量 nr 的非对称
您可以将数据重新整形为方阵,然后将其输入 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)