2013-06-25 12 views
4

當使用R鍵繪製三行說明,結合表達和字符變量結合,我寫,例如:如何字符(或數字)的變量與表達式在LEGEND中的R

b1<-2 
c1<-3 
d1<-4 
a<-seq(1,10) 
b<-a+b1 
c<-a+c1 
d<-a+d1 

plot(NA 
,axes = FALSE  
,xlim=c(0,10) 
,ylim=c(0,15) 
) 
box() 

lines(a,b,col=1) 
lines(a,c,col=2) 
lines(a,d,col=3) 

legend(8,2 
,c(expression(paste(italic(b)[1],"=2","m")) 
,expression(paste(italic(c)[1],"=3","m")) 
,expression(paste(italic(d)[1],"=4","m")) 
) 
    ) 

上述腳本就會產生我想要的圖例,但是,值b1,c1和d1在腳本中是硬編碼的。

有什麼方法可以將變量b1,c1和d1放入圖例腳本中嗎?我已經嘗試了很多方法,如

no1。

b2<-as.character(b1) 
legend(6,2 
,c(expression(paste(italic(b)[1],b2,"m")) 
,expression(paste(italic(c)[1],"=3","m")) 
,expression(paste(italic(d)[1],"=4","m")) 
) 
    ) 

no2。

legend(4,2 
,c(bquote(paste(italic(b) [1], "=",.(b1),"m")) 

,expression(paste(italic(c)[1],"=3","m")) 
,expression(paste(italic(d)[1],"=4","m")) 
) 
    ) 

這一個工程的第一線,但如果我通過bquote使三條線,它不工作了:

legend(2,2 
,c(bquote(paste(italic(b) [1], "=",.(b1),"m")) 

,bquote(paste(italic(b) [1], "=",.(b1),"m")) 
,bquote(paste(italic(b) [1], "=",.(b1),"m")) 
) 
    ) 

任何偉大的想法?提前謝謝了!

回答

5

嘗試是這樣的:

lgnd <- c(bquote(italic(b)[1] == .(b1)*m), 
      bquote(italic(c)[1] == .(c1)*m), 
      bquote(italic(d)[1] == .(d1)*m)) 
legend(2,4, as.expression(lgnd)) 
+0

謝謝,它的工作原理就像一個魅力 –

0

我認爲應該給你你想要的不是嗎?

leg<-as.factor(paste("m =",c(b1,c1,d1))) 
legend("bottomright", levels(leg), lwd=1, lty=1, col=c(1,2,3), cex=1.25) 

我可能錯過了線條和圖例級別,由您來糾正它! ;)

相關問題