2017-05-24 140 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

你可以包括表達

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

Oy公司,duhh!謝謝!但是,有沒有辦法用20個不同的值快速做到這一點? (也就是說,不是重複20x的表達式,是否有一種方法可以只寫一次'〜degree〜C'並將它與20個值中的每一個結合使用)? – theforestecologist

2

我認爲你需要的substituteexpression幫助這兩個值。你做了一個你需要編寫表達式的矢量,這裏我把c(5,10)作爲sapply的輸入。對於函數部分,你需要使用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

相關問題