13

以下の作品(Rにコピペ)

a=123
plot(1,1)
legend('bottomleft',legend=bquote(theta == .(a)))

凡例に複数のアイテムが必要です。すべてギリシャ文字で。簡単な例として、アイテムを 2 回繰り返すと、コードが機能しなくなります

a=123
plot(1,1)
legend('bottomleft',legend=c(bquote(theta == .(a)),bquote(theta == .(a))))

もっと複雑な式をたくさん試しましたが、すべてうまくいきませんでした。

どんな助けでも大歓迎です。

4

2 に答える 2

19

この場合、plotmath は式の呼び出しのリストを強制できません。

> cs <- c(bquote(theta == .(a)),bquote(theta == .(a)))
> cs
[[1]]
theta == 123

[[2]]
theta == 123

> sapply(cs, class)
[1] "call" "call"

自分で式を強制すると、これを機能させることができます。

> c(as.expression(bquote(theta == .(a))), as.expression(bquote(theta == .(a))))
expression(theta == 123, theta == 123)
> plot(1,1)
> legend('bottomleft',legend= c(as.expression(bquote(theta == .(a))), 
+                               as.expression(bquote(theta == .(a)))))

もう 1 つの方法は、次を使用して式の呼び出しの元のリストを強制することsapplyです。

plot(1,1)
legend("bottomleft", 
       sapply(c(bquote(theta == .(a)), bquote(theta == .(a))), as.expression))
于 2011-08-26T20:53:40.003 に答える