当使用 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 放入图例脚本中?我尝试了很多方法,例如
没有。
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"))
)
)
没有2。
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" ))
)
)
有什么好主意吗?提前谢谢了!