防止线条在图例中出现两次

时间:2014-04-12 00:43:46

标签: r plot legend

我在大约一个小时前问过一个关于这个传说的问题Align symbols in the legend,但现在出现了一个新问题。我想在我的传奇中添加一些线条。我做了以下事情:

plot(1:4)
legend("topleft",legend=expression(theta[1]==7%*%10^-4,theta[1]==0,
                                   theta[2]==-14%*%10^-4,theta[2]==0),
       lty=c(2,1),lwd=2,col=c("blue","grey"),bty="n",cex=1.2,ncol=2)

enter image description here

但是每行只应出现一次:第一行中有一行蓝线,第二行中有一行灰线。然后我尝试插入零,所以lty=c(2,1,0,0),但是在thetas之间出现了空格。

它应该是这样的:

enter image description here

有没有人建议如何防止线条在我的传奇中出现两次?

1 个答案:

答案 0 :(得分:1)

实际上这些线只出现了4次,因为你创建了一个4元素表达向量。 (线条参数正在被回收。)这个解决方案“保护”内部逗号不被解释,再看一遍,我看到订单不是你所说的。你现在应该能够修复我已经演示了如何更好地在表达式中加入逗号:

plot(1:4)
legend("topleft",legend=expression(theta[1]==7%*%10^-4*","~theta[1]==0,
                                   theta[2]==-14%*%10^-4*","~theta[2]==0),
       lty=c(2,1),lwd=2,col=c("blue","grey"),bty="n",cex=1.2,ncol=2)

您可能需要调整位置,因为它会影响到第四点,但是这显然不是您的用例。考虑使用ncol = 1。

enter image description here

对编辑的回应:所以你不想要逗号而只想要空格。添加更多波浪:

png(); plot(1:4)
legend("topleft",legend=expression(theta[1]==7%*%10^-4~theta[2]==-14,
                                   theta[1]==0 ~~~~~~~~~~~~theta[2]==0),
 ncol=1, lty=c(2,1),lwd=2,col=c("blue","grey"),bty="n",cex=1.2);dev.off()

enter image description here