2

次の問題があります。順序付けられたロジットモデルを実行した後、結果を視覚化するためにRのエフェクトパッケージを作成します。これは正常に機能し、2つの独立変数に対してこれを行った後、2つのプロットを組み合わせようとしました。ただし、これは機能していないようです。ここに少し複製可能な例を示しますので、私の問題を自分で確認できます。

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"))

これらの2つのプロットを個別に印刷できるようになりましたが、一緒にプロットしようとすると、最初のプロットが上書きされます。設定par(mfrow=c(2,1))してみましたが、うまくいきませんでした。次に、私は次のことを試みました:

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

この後者の場合、2つのプロットの位置は問題ありませんが、2番目のプロットを追加すると、最初のプロットは消えます(または、より適切には、上書きされます)。この動作を防ぐ方法についての提案をいただければ幸いです。

4

2 に答える 2

5

引数の長いリストを読むと、?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()動作しなかった理由は、このパッケージがベースグラフィックスと互換性のないグリッドシステムに基づくラティスグラフィックスを使用しているためです。グリッドグラフィックスにも影響はありません。par()layout

于 2013-03-05T15:28:06.133 に答える
1

これはうまくいくようです:

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"))

編集:遅すぎる...

于 2013-03-05T15:34:15.177 に答える