2

par() コマンドを使用してグラフィック デバイスに一連のプロットを作成し、最初の 2 つのプロットを実行します。

par(mfrow = c(1, 4))
hist(mydata)
boxplot(y ~ x)

ボックスプロットが間違っていて、新しいものに置き換えたいとしましょう。デフォルトでは、次のプロットは前のプロットの左側 (複数行レイアウトの場合は 1 行下、最初の列) に移動し、前のプロットは変更されません。

マルチプロット グリッド エリアで次のプロットの位置を指定する方法はありますか?

4

3 に答える 3

3

マルチプロットグリッド領域の次のプロットの位置を指定するには、関数を使用することをお勧めしますlayout。このlayout関数は、mfrowおよびmfcol設定の代わりになります。たとえば、に相当するものpar(mfrow = c(1, 4))は次のとおりです。

     layout(matrix(c(1, 3, 2, 4), byrow=TRUE, ncol=4))

また

     layout(matrix(c(1, 2, 3, 4), byrow=TRUE, ncol=4))

この関数layout.show()は、作成された図形領域を視覚化するのに役立つ場合があります。次のコードは、前の例で作成されたレイアウトを視覚化した図を作成します。

  layout.show(4)

ここに画像の説明を入力してください

于 2013-02-07T22:49:07.013 に答える
2

ベースのグラフィック モデルは紙にインクを使用したものであり、修正はできません。ラティス モデルと ggplot モデルは、変更可能なリストに基づいています。linesでアイテムを追加して「戻る」ことができpointsます。指摘したように、フォーカスを特定のパネルに変更できますが、ものを削除または置換することはできません....不可能です。コードを再実行することは大きな問題ではないはずです。ピクセルは非常に安価です。

于 2013-02-07T22:31:50.543 に答える
2

mfg引数 toを使用して、プロットする次のフレームを指定できますpar。詳細?parについては、を参照してください。したがって、次のようなコマンド:

par(mfg=c(1,2))

次の高レベル プロットは、1 行 2 列目のプロットに移動することを意味します。これは、独自のカスタム順序でプロットするために使用できます。ただし、layoutほとんどの場合、これを使用する方がおそらく簡単です。

これを使用してプロットするフレームを指定する場合、R はフレームをプロットする準備ができていると想定し、そこにあるものは何も削除しないため、そこに既存のプロットがある場合は上書きされ、おそらく両方が表示されますきれいに見えません。

次のようなコードを使用して、既存のプロットの上に長方形を描画して、プロットするための空白のフレームを作成できます。

par(xpd=NA)
rect( grconvertX(0, from='nfc'), grconvertY(0,from='nfc'), 
grconvertX(1,from='nfc'), grconvertY(1, from='nfc'), 
col='white',border='white')

これは画面上で見るには問題ありませんが、エクスポートまたは印刷する場合は注意が必要です。場合によっては、グラフィック ファイルのプリンターまたはインタープリターが白い四角形を「何もしない」と解釈し、再び両方が表示されます。プロット。

一般に、スクリプト ウィンドウで 1 行または 2 行以上のコードを使用するプロットを実行するのが最善です。これにより、何かを変更したい場合は、スクリプトを編集して、このようなトリックに頼るのではなく、最初からプロット全体を再作成できます。 .

于 2013-02-07T23:40:18.103 に答える