2017-05-24 19 views
2

expressionを使ってプロットの凡例に度記号を追加することができます。Rの複数のプロット凡例に度記号を追加するには?

plot(1:5,1:5) 
legend('topleft', fill = 'white', legend = expression(5~degree~C)) 

enter image description here

しかしどのように私は複数凡例エントリのためにこれを行うことができますか?

は、私は次のことを試してみましたが、それはうまくいきませんでした:

plot(1:5,1:5) 
points(1:5,(1:5) + 0.1, col = 2) 
legend('topleft', fill = c('white','red'), legend = paste0(c(5,10), expression(~degree~C))) 

enter image description here

編集:私は多く値のためにこれを行う方法で、より興味がありますだけでなく、 2.

これを簡潔かつきれいに行う方法についてのご意見をお待ちしております。ありがとう!

答えて

1

あなたは私はあなたがsubstituteexpressionの助けが必要だと思う表現

legend('topleft', fill = c('white','red'), expression(5~degree~C,10~degree~C)) 
+0

オイ、duhh!ありがとう!しかし、20の異なる値でこれをすばやく行う方法はありますか? (つまり、式20xを繰り返す代わりに、 '〜degree C'を一度書くだけで、それを20個の値のそれぞれと組み合わせる方法がありますか?) – theforestecologist

2

で両方の値を含めることができます。あなたはサプリーの入力としてc(5,10)を入れています、ここで表現を書く必要があるベクトルのサプリをします。関数の部分では、as.expressionとsubstituteを使う必要があります。

plot(1:5,1:5) 
points(1:5,(1:5) + 0.1, col = 2) 
legend('topleft', fill = c('white','red'), legend = sapply(c(5,10), function(x) as.expression(substitute(A~degree~"C",list(A = as.name(x)))))) 

出力

enter image description here

関連する問題