在交互图中显示变量名称

时间:2018-02-09 04:53:28

标签: r

我有几个预测变量(v1,v2,v3),想要使用interaction.plot()检查结果变量(结果)之间的相互作用。

我们的想法是以自动化的方式实现这一点(我的#34;真实数据集中有3个以上的变量)。

   v1<-c(0,0,1,1,0,0,1,1,1,0))
   v2<-c(1,0,0,0,1,0,1,1,1,0)
   v3<-c(4,5,2,5,7,3,5,3,2,1)
   outcome<-c(1,0,0,1,0,1,1,0,1,0)
   df<-data.frame(v1,v2,v3,outcome)
   a<-c("v1" , "v2" , "v3")
   b<-c("v1" , "v2" , "v3")

   par("mar")
   par(mar=c(1,1,1,1))
   par(mfrow=c(3,3))
   for (i in 1:3){
     for (j in 1:3){
       interaction.plot(df[,a[i]], df[,b[j]], df$outcome)
     }  
   }

情节如下: Interaction Plot Matrix

现在我想通过插入lab和ylab将变量名称放入图表中:

interaction.plot(df[,a[i]], df[,b[j]], df$outcome, xlab=colnames(df)[i], ylab=colnames(df)[j])

当我运行时,没有任何反应(图表看起来像以前)。

任何提示?

-p

1 个答案:

答案 0 :(得分:0)

似乎没有任何事情发生的原因是您将边距设置得太小,因此轴标签没有空间出现。您可以通过在底部和左侧留出更多空间来让它们再次出现:

par(mar=c(5,4,1,1))
par(mfrow=c(3,3))
for (i in 1:3){
    for (j in 1:3){
        interaction.plot(df[,a[i]], df[,b[j]], df$outcome, 
                         xlab=colnames(df)[i], ylab=colnames(df)[j])
    }  
}

要在稍微收紧边距时保持轴标签,您还可以使用mgp参数来播放绘图区域和轴标签之间的间距,但找到正确的平衡似乎很难实现:

par(mar=c(3,3,1,1), mgp = c(1, 0, 0))
par(mfrow=c(3,3))
for (i in 1:3){
    for (j in 1:3){
        interaction.plot(df[,a[i]], df[,b[j]], df$outcome, 
                         xlab=colnames(df)[i], ylab=colnames(df)[j])
    }  
}