【问题标题】:Combine two plots created with effects package in R结合使用 R 中的效果包创建的两个图
【发布时间】:2013-03-05 15:08:05
【问题描述】:

我有以下问题。运行有序的 logit 模型后,我想用 R 的效果包来可视化结果。这很好用,我对两个独立变量这样做了,然后我尝试将这两个图结合起来。但是,这似乎不起作用。我在这里提供了一个可复制的小示例,以便您自己查看我的问题:

library(car)
data(Chile)
mod <- polr(vote ~ age + log(income), data=Chile)

eff <- effect("log(income)", mod)
plot1 <- plot(eff, style="stacked",rug=F, key.args=list(space="right"))

eff2 <- effect("age", mod)
plot2 <- plot(eff2, style="stacked",rug=F, key.args=list(space="right"))

我现在可以独立打印这两个图,但是当我尝试将它们一起绘制时,第一个图被覆盖。我尝试设置par(mfrow=c(2,1)),但没有成功。接下来我尝试了以下方法:

print(plot1, position=c(0, .5, 1, 1), more=T)
print(plot2, position=c(0,0, 1, .5))

在后一种情况下,两个图的位置很好,但是一旦我添加第二个图,第一个图仍然消失(或者更好的是,它被覆盖了)。任何如何防止这种行为的建议将不胜感激。

【问题讨论】:

    标签: r graphics effects


    【解决方案1】:

    阅读?print.eff 的一长串参数,我们发现有一些参数可以做到这一点:

    plot(eff, style="stacked",rug=F, key.args=list(space="right"),
         row = 1,col = 1,nrow = 1,ncol = 2,more = TRUE)
    plot(eff2, style="stacked",rug=F, key.args=list(space="right"),
         row = 1,col = 2,nrow = 1,ncol = 2)
    

    par() 不起作用的原因是因为这个包使用了 lattice 图形,它基于 grid 系统,与基本图形不兼容。 par()layout 都不会对网格图形产生任何影响。

    【讨论】:

      【解决方案2】:

      这似乎有效:

      plot(eff,col=1,row=2,ncol=1,nrow=2,style="stacked",rug=F,
        key.args=list(space="right"),more=T)
      plot(eff2,col=1,row=1,ncol=1,nrow=2,style="stacked",rug=F, 
        key.args=list(space="right"))
      

      编辑:太晚了……

      【讨论】:

        猜你喜欢
        • 2019-10-21
        • 2014-04-21
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2021-03-17
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多