我需要向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)
接下来,我尝试使用以下代码动态添加跟踪:
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]]]])
}
这是一个非常奇怪的输出,因为它将所有后续标记添加到循环中使用的第一组标记的位置。当在循环中添加更多观察值时,此行为将持续存在。有人知道为什么会这样吗?