1

次のコードを実行しています。

par(bg="yellow", mar=c(2,2,2,2))
layout(matrix(c(rep(1,12),2:13),nrow=2,byrow=T),width=myWidth)
plot(days,sum_precip,type="l",xaxt="n",yaxt="n",ann=FALSE,
                      xlab="TEST",main="WEWQWE",ylab="dsads")

最後のステートメントでは、引数でこれを指定した後でも、プロットにラベルが表示されません。余白が小さすぎるからですか?

レイアウトの一番下の行にある各グラフの x 軸のヘッダーを追加しようとしています。

問題の例:

注意してください、なぜこれがうまくいかないのかもっと知りたいです。軸(..)を指定するだけでよいことはわかっていますが、これはもっと興味がありません。

4

2 に答える 2

1

ええ、マージンが小さすぎます。

例:

par(mar=rep(4,4))
plot(1, 1, xaxt='n', xlab='x', yaxt='n', ylab='y')

マージン4、4、4、4

これはラベルを示しています(すみません、小さいです)。

ただし、使用par(mar=rep(2,4))

マージン2、2、2、2

ラベルは切り取られています。

引数を使用してmgp、軸からの軸テキストのオフセット(行単位)を変更できます。特に(?parmgpは、長さ3のベクトルです。ここmgp[1]で、はプロットと軸ラベルの間の線、mgp[2]は軸線自体、mpg[3]は軸目盛りラベルです。

それで:

par(mar=rep(2,4))
# mgp[2:3] irrelevant in this case as we have turned
# axis line/ticks off; doesn't matter what they are set to
plot(1, 1, xaxt='n', xlab='x', yaxt='n', ylab='y', mgp=c(1,0,0))

これにより、軸ラベルが軸から1行離れて(つまり、2行目離れて)配置され、2,2,2,2のマージンにちょうど収まります。

mgpでマージン2、2、2、2

于 2013-02-26T02:39:01.353 に答える
1

ここでは、 を使用したソリューションを示しmtextます。?mtext を参照

テキストは、現在の Figure 領域の 4 つの余白の 1 つ、またはデバイス領域の外側の余白の 1 つに書き込まれます。

 par(bg="lightyellow", mar=c(2,2,2,2))
 layout(matrix(c(rep(1,12),2:13),nrow=2,byrow=T))

 replicate(13,
           {  plot(x=1:5,y=cumsum(1:5),type="l",xaxt="n",yaxt="n",ann=FALSE)
              mtext(text='TEST',side=1,line=1)
              mtext(text='dsads',side=2,line=1)

              })

ここに画像の説明を入力

編集

プロットごとに余白を設定できます。

 par(bg="lightyellow", mar=c(2,2,2,0))
 layout(matrix(c(rep(1,12),2:13),nrow=2,byrow=T))
 for(i in 1:13){  
              if (i %in% 1:2){
                plot(x=1:5,y=cumsum(1:5),type="l",xaxt="n",yaxt="n",ann=FALSE)
                  mtext(text='TEST',side=1,line=1)
                  mtext(text='dsads',side=2,line=1)
              }else{
                par( mar=c(2,0,2,0))
                plot(x=1:5,y=cumsum(1:5),type="l",xaxt="n",yaxt="n",ann=FALSE)
              }
          } 

ここに画像の説明を入力

于 2013-02-26T02:41:23.963 に答える