在 R 中的每次迭代后添加到图例
Adding to a legend after each iteration in R
我正在绘制几条回归线,通过设置 lty
来区分,使用 abline
命令将其绘制到 R 中的一张图中。
现在,我正在尝试为剧情添加一个图例,以帮助读者解读它。这应该是一个非常基本的传说:
Linetype X = Variable 1
Linetype Y = Variable 2, etc.
现在 legend()
上的 documentation 对我来说完全有意义,但我一次只成功写出一个传说。
有什么方法可以迭代构建这个图例吗? IE。添加
绘图时将线型和变量设置为空白图例?
还是我必须收集所有信息然后在绘图后写
已经完成了?如果是这样,最优雅的方法是什么?
如果我可以依靠标准包来使代码更便携,那就太好了。
显然 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()
。
我正在绘制几条回归线,通过设置 lty
来区分,使用 abline
命令将其绘制到 R 中的一张图中。
现在,我正在尝试为剧情添加一个图例,以帮助读者解读它。这应该是一个非常基本的传说:
Linetype X = Variable 1
Linetype Y = Variable 2, etc.
现在 legend()
上的 documentation 对我来说完全有意义,但我一次只成功写出一个传说。
有什么方法可以迭代构建这个图例吗? IE。添加 绘图时将线型和变量设置为空白图例?
还是我必须收集所有信息然后在绘图后写 已经完成了?如果是这样,最优雅的方法是什么?
如果我可以依靠标准包来使代码更便携,那就太好了。
显然 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()
。