带有可图的奇怪循环行为

时间:2019-08-08 19:39:23

标签: r for-loop r-plotly

我需要向plotly图中动态添加标记,以便可以使用updatemenus使某些迹线可见,从而可以绘制类似于the plot here的图。请看以下示例:

library(plotly)
df <- data.frame(a_x = c(1, 2), a_y = c(1, 2), b_x = c(4, 5), b_y = c(9, 10), c_x = c(8, 2), c_y = c(6,7))


plot_ly(df, x = ~a_x, y = ~a_y, type = "scatter", mode = "markers") %>%
  add_markers(x = ~b_x, y = ~b_y) %>%
  add_markers(x = ~c_x, y = ~c_y)

产生以下图形: enter image description here

接下来,我尝试使用以下代码动态添加跟踪:

x_cols <- c("b_x", "c_x")
y_cols <- c("b_y", "c_y")

p <- plot_ly(df, x = ~a_x, y = ~a_y, type = "scatter", mode = "markers")

for (i in 1:2) {

  p <- p %>% add_markers(x = ~df[[x_cols[[i]]]], y = ~df[[y_cols[[i]]]])

}

产生以下图形:enter image description here

这是一个非常奇怪的输出,因为它将所有后续标记添加到循环中使用的第一组标记的位置。当在循环中添加更多观察值时,此行为将持续存在。有人知道为什么会这样吗?

0 个答案:

没有答案