ここで必要なことがいくつかありますが、主なものは 3 つの式を適切な形式で取得することです。単純c
にそれらを一緒にするとうまくいきません。そのために、式のリストを作成し、sapply
そのas.expression
リストに対して関数を作成して「式のベクトル」を取得します。
plotmath 関数を使用しatop
て「改行」を取得します。これは引数を重ねて配置します。
0,95
私が推測する部分を取得するには0.95
、あなたのロケールでは、私のマシン*
でリテラルでレイアウト関数を使用して、 と","
を並置する必要が0
ありました95
。これが小数点を書き込むだけの場合、.
小数点として使用する他のロケールでは、これは必要ありません。あなたのロケールでは、以下の 2 番目のバージョンを使用できると思われますが、 の[0,99]
代わりに記述しますが[0.99]
、わかりません。
置くだけなら
bquote(atop(foo_0.99^normal ==, .round(bar, 4)))
エラーが発生するだけです:
> bquote(atop(foo_0.99^normal ==, .round(bar, 4)))
Error: unexpected ',' in "bquote(atop(foo_0.99^normal ==,"
==
これは、関数/演算子の右側が欠落しているためです。(現在の行で!) の後には何も==
必要ないため、余分なスペースを追加せずに の有効な右側を提供するものを使用する必要があります==
。ここではphantom()
、プレースホルダーとして機能しますが、スペースを残しません (引数を指定しないため) を使用します。ただし== ""
、 の代わり""
に を使用することもできますphantom()
。
線と同じ色のテキストを取得するには、text.col
引数を使用します。
これは、すべてのリクエストに対応した完全なものです(ファッションの後):
test <- 10:1
dummy1 <- 0.004323423
dummy2 <- 0.054
dummy3 <- 0.032
plot(test, 1:10)
## list of expressions
exprs <-
list(bquote(atop(Qua_0 * "," * 99^normal == phantom(), .(round(dummy1, 4)))),
bquote(atop(Qua_0 * "," * 95^normal == phantom(), .(round(dummy2, 4)))),
bquote(atop(Qua_0 * "," * 99^t == phantom(), .(round(dummy3, 4)))))
## fudge to get them as an expression vector
exprs <- sapply(exprs, as.expression)
cols <- c("red", "black", "darkgreen")
legend("topright", legend = exprs, bty = "n", lwd = 2, cex = 1, col = cols,
lty=c(1,3,5), text.col = cols)
LaTeX_
を使用して上付き文字を取得しているようです。plotmath では、 が必要[ ]
です。また、これはタイポグラフィ的にもあまり良くないことに注意してください --- 凡例のエントリ間には十分なスペースがありませんが、単一のエントリ内の要素間にはいくらかのスペースがあります。これはatop
、改行を偽造するために悪用されているためです。y.intersp
の引数を使用して対処できますlegend
。に増やすと、2
十分なスペースが得られます。
これを組み合わせて、すべての要件を満たすために次のことを行います。
plot(test, 1:10)
## list of expressions
exprs <-
list(bquote(atop(Qua[0.99]^normal == phantom(), .(round(dummy1, 4)))),
bquote(atop(Qua[0.95]^normal == phantom(), .(round(dummy2, 4)))),
bquote(atop(Qua[0.99]^t == phantom(), .(round(dummy3, 4)))))
## fudge to get them as an expression vector
exprs <- sapply(exprs, as.expression)
cols <- c("red", "black", "darkgreen")
legend("topright", legend = exprs, bty = "n", lwd = 2, cex = 1, col = cols,
lty=c(1,3,5), text.col = cols, y.intersp = 2)
これにより、次が生成されます。