0

次の例を検討してください。

dat <- matrix(rexp(240, rate=.1), ncol=6)
par(mfrow=c(3,2))

for (i in 1:6){
    plot(dat[,i],xlab = "Day of year",col = "black",
         ylab = expression(paste("Temperature ",degree,"C")))
  }

これにより、x ラベルと y ラベルが明確に表示される 6 つのサブプロットが生成されます。 ここに画像の説明を入力

これを変更して、右側のパネルにのみ ylabel が表示されるようにします (繰り返しを避けるため)。だから、私は書く:

for (i in 1:6){
  if (i %% 2 == 0){
    plot(dat[,i],ylab = "",xlab = "Day of year",col = "black")
  }
  else {plot(dat[,i],ylab = expression(paste("Temperature ",degree,"C")),
             xlab = "Day of year",col = "black")
  }
}

生成するもの: ここに画像の説明を入力

偶数番号のパネルだけに ylabel が付いていることがわかります。また、パネル 5 と 6 だけが xlabel を持つように図を表示したいと思います。これは、別の if ステートメントを追加することで実現できます。しかし、これほど単純なことをするのは大変な作業のようです。誰でも別の方法を提案できますか。私はRIの初心者なので、ラティスやggplotではなく、最初にRベース関数のいくつかを使用することを好みます。ただし、基本関数でこれを行うよりクリーンな方法がない場合は、他の提案を歓迎します。

4

1 に答える 1

2

ifelse便利なショートカットです。

for (i in 1:6){
    plot(dat[,i],xlab = ifelse(i %% 2 == 0,"","Day of year",col = "black",
         ylab = ifelse(i %% 2 == 0,"",expression(paste("Temperature ",degree,"C")))

また、すべての軸が同じ場合mtextに使用できます。outer=TRUEラベルなしですべてをプロットしたら、次を試してください。

mtext("Day of Year", side=1, padj=-2, outer=TRUE)
mtext("Temperature", side=2, padj=2, outer=TRUE)

ここに画像の説明を入力

于 2012-12-12T18:34:57.017 に答える