如果使用for循环来创建动态行数,则在R中使用plot_ly的奇怪行为

时间:2017-08-01 21:57:47

标签: r plotly

我正在尝试绘制多条线,使用R和plot_ly结合add_trace。如果我使用以下代码,它就像预期的那样工作:

df <- data.frame(x=c(1,2,3), y=c(2,4,5), y=c(4,1,3))
p <- plot_ly(mode="lines", type="scatter")
p <- add_trace(p, x=~df[,1], y=~df[,2])
p <- add_trace(p, x=~df[,1], y=~df[,3])
p

并提供this image

如果我尝试使用for-loop而不是这样,它就不起作用了:

df <- data.frame(x=c(1,2,3), y=c(2,4,5), y=c(4,1,3))
p <- plot_ly(mode="lines", type="scatter")
for(i in 1:2)
{
  p <- add_trace(p, x=~df[,1], y=~df[,i])
}
p

只给我一条线(实际上是后一条)here

请有人解释一下,这里发生了什么以及如何修复第二版? 感谢

1 个答案:

答案 0 :(得分:0)

我无法准确地解释这里发生了什么事情,因为几个月前我们已经做了很多改变,我从未真正赶上过。

将您的for索引更改为2:3以符合您的数据,并将~df[,]电话放到普通df[,],这样就可以了。它至少在我的结尾。