4

次の凡例を生成します。

legend(
  "bottomleft"
  , legend=c(
    expression(bold("Long:" ~ (w==10^2 ~ ";" ~ h==10^5)))
    , expression(q[c] == 0.00 ~ ";" ~ beta == 0)
    , expression(q[c] == 0.05 ~ ";" ~ beta == 2)
    , expression(q[c] == 0.10 ~ ";" ~ beta == 10)
    , expression(q[c] == 0.20 ~ ";" ~ beta == 10)
    , expression(q[c] == 0.40 ~ ";" ~ beta == 10)
    , expression(bold("Wide:" ~ (w==10^3 ~ ";" ~ h==10^3)))
    , expression(q[c] == 0.00 ~ ";" ~ beta == 0)
    , expression(q[c] == 0.05 ~ ";" ~ beta == 2)
    , expression(q[c] == 0.10 ~ ";" ~ beta == 10)
    , expression(q[c] == 0.20 ~ ";" ~ beta == 10)
    , expression(q[c] == 0.40 ~ ";" ~ beta == 10)
  )
  , col=c("n", 1, 2, 3, 4, 5, -1, 1, 2, 3, 4, 5)
  , lty=c(F, 1, 1, 1, 1, 1, -1, 2, 2, 2, 2, 2)
  , cex=.65
)

それは私に与える:

ここに画像の説明を入力

「ライン+ポイント」サンプル領域にもまたがる見出しがあるとよいでしょう。

ここに画像の説明を入力

どうすればこれを理解できますか?(たとえば、lty セクションでnorを設定しようとしFALSEましたが、うまくいきませんでした...)。qc値と -値の調整にも失敗しましたbetaが、それは別の話です...

4

2 に答える 2

5

@DWinの提案された解法を使用する:

サンプル プロットを設定します。

plot(1:10,type="n")

凡例を保存し、phantom手動で書き込むタイトルを非表示にします

saveleg <- legend(
  "bottomleft"
  , legend=c(
      expression(phantom(bold("Long:" ~ (w==10^2 ~ ";" ~ h==10^5))))
    , expression(q[c] == 0.00 ~ ";" ~ beta == 0)
    , expression(q[c] == 0.05 ~ ";" ~ beta == 2)
    , expression(q[c] == 0.10 ~ ";" ~ beta == 10)
    , expression(q[c] == 0.20 ~ ";" ~ beta == 10)
    , expression(q[c] == 0.40 ~ ";" ~ beta == 10)
    , expression(phantom(bold("Wide:" ~ (w==10^3 ~ ";" ~ h==10^3))))
    , expression(q[c] == 0.00 ~ ";" ~ beta == 0)
    , expression(q[c] == 0.05 ~ ";" ~ beta == 2)
    , expression(q[c] == 0.10 ~ ";" ~ beta == 10)
    , expression(q[c] == 0.20 ~ ";" ~ beta == 10)
    , expression(q[c] == 0.40 ~ ";" ~ beta == 10)
  )
  , col=c("n", 1, 2, 3, 4, 5, -1, 1, 2, 3, 4, 5)
  , lty=c(F, 1, 1, 1, 1, 1, -1, 2, 2, 2, 2, 2)
  , cex=.65
  , trace=TRUE
)

text次に、新しく指定された x 軸の値を使用して、保存された凡例から再プロットされるの 2 ビットの y 軸の値を取得します。

text(
    c(0.6,0.6),
    saveleg$text$y[c(1,7)],
    c(
      expression(bold("Long:" ~ (w==10^2 ~ ";" ~ h==10^5))),
      expression(bold("Wide:" ~ (w==10^3 ~ ";" ~ h==10^3)))
     ),
    cex=0.65,
    pos=4
)

結果:

ここに画像の説明を入力

于 2013-03-19T00:07:35.263 に答える
3

同様のアプローチですが、legendタイトルを使用し、後で四角形 (ボックス) を追加する前に 2 つの凡例 (ボックスなし) を作成します。

plot(1)
# legend 1
l1 <- legend(
  "topleft"
  , legend=c(expression(q[c] == 0.00 ~ ";" ~ beta == 0)
    , expression(q[c] == 0.05 ~ ";" ~ beta == 2)
    , expression(q[c] == 0.10 ~ ";" ~ beta == 10)
    , expression(q[c] == 0.20 ~ ";" ~ beta == 10)
    , expression(q[c] == 0.40 ~ ";" ~ beta == 10)),
  title = expression(bold("Long:" ~ (w==10^2 ~ ";" ~ h==10^5))),
  , col=c( 1, 2, 3, 4, 5)
  , lty=c(1, 1, 1, 1, 1)
  , cex=.65,
   bty='n')
# legend 2, placed directly below legend 1
l2 <- legend(x = l1$rect$left, y = with(l1$rect, top - h),
             legend =c(expression(q[c] == 0.00 ~ ";" ~ beta == 0)
                       , expression(q[c] == 0.05 ~ ";" ~ beta == 2)
                       , expression(q[c] == 0.10 ~ ";" ~ beta == 10)
                       , expression(q[c] == 0.20 ~ ";" ~ beta == 10)
                       , expression(q[c] == 0.40 ~ ";" ~ beta == 10)),
             title = expression(bold("Wide:" ~ (w==10^3 ~ ";" ~ h==10^3))),
              col=c( 1, 2, 3, 4, 5)
             , lty=c(  2, 2, 2, 2, 2)
             , cex=.65,
             bty='n')
# add the rectangle around the legend
rect(xleft = l1$rect$left, ybottom = with(l2$rect, top - h), 
     xright = l1$rect$left + max(l1$rect$w, l1$rect$w), ytop = l1$rect$top)

ここに画像の説明を入力

于 2013-03-19T00:26:31.043 に答える