Этого можно добиться, разделив ваши данные на «куски» и нанеся каждый из них на отдельную трассу. Воспроизводимый пример:
df <- data.frame(
time = Sys.time() - c(1:10, 51:60),
value = runif(20),
chunk = rep(c("A", "B"), each = 10)
)
p <- plot_ly(data = df[which(df$chunk == "A"),], x = ~time, y = ~value, name = "chunk A", type = "scatter", mode = "lines") %>%
add_trace(data = df[which(df$chunk == "B"),], x = ~time, y = ~value, name = "chunk B", type = "scatter", mode = "lines")
# or if there are more 'chunks'
p2 <- plot_ly(data = df, x = ~time, y = ~value, color = ~chunk, type = "scatter", mode = "lines")
Естественно, вам нужно найти осмысленный способ группировки данных, т. Е. Если разница во времени между наблюдениями превышает [укажите отсечение] , перейдите к новому фрагменту.