在 R 中的每次迭代后添加到图例

Adding to a legend after each iteration in R

我正在绘制几条回归线,通过设置 lty 来区分,使用 abline 命令将其绘制到 R 中的一张图中。

现在,我正在尝试为剧情添加一个图例,以帮助读者解读它。这应该是一个非常基本的传说:

Linetype X = Variable 1

Linetype Y = Variable 2, etc.

现在 legend() 上的 documentation 对我来说完全有意义,但我一次只成功写出一个传说。

如果我可以依靠标准包来使代码更便携,那就太好了。

显然 Matlab 中有一些方法可以做到这一点,但我找不到 R 的任何东西。

这是我的代码:

cols=c(0:length(v))
count=1
for (v in variables)
    {
    ...
lmodel=lm(v~x);
abline(lmodel, lty=cols[count]);
count=count+1
...
    }
}

非常感谢任何帮助!

这个从循环的所有重复中收集图例文本的最小工作示例应该很容易适应您的问题:

# dummy plot
plot(iris[,1:2])
# empty legend text
legend_text <- c()
for (v in 1:4) {
    abline(v,0, col = v, lty = v)    
    # add next legend text
    legend_text <- c(legend_text, v)  
}
# plot legend once
legend('topright', legend = legend_text, lty=1:4, col=1:4)

还有一件事:如果您 运行 在使用向量时遇到问题,请考虑改用 list()