Поначалу это может быть неочевидно, но структура ваших данных идеально подходит для графиков с несколькими временными рядами. Вам даже не нужно беспокоиться о функции group_by
. Ваш набор данных, похоже, имеет длинный формат , где даты в date column
и имена в activity column
не являются уникальными. Но у вас будет только одна переменная на действие и дату.
При правильных спецификациях plot_ly()
сгруппирует ваши данные, используя color=~activity
, например: p <- plot_ly(new_data2, x = ~date, y = ~totall, color = ~activity) %>% add_lines()
. Поскольку вы не предоставили достаточно большой образец данных, я буду использовать встроенный набор данных economics_long
, чтобы показать вам, как вы можете это сделать. Прежде всего, обратите внимание, как структура моего набора данных соответствует вашей:
date variable value
1 1967-07-01 psavert 12.5
2 1967-08-01 psavert 12.5
3 1967-09-01 psavert 11.7
4 1967-10-01 psavert 12.5
5 1967-11-01 psavert 12.5
6 1967-12-01 psavert 12.1
...
Сюжет:
Код:
library(plotly)
library(dplyr)
# data
data("economics_long")
df <- data.frame(economics_long)
# keep only some variables that have values on a comparable level
df <- df %>% filter(!(variable %in% c('pop', 'pce', 'unemploy')))
# plotly time series
p <- plot_ly(df, x = ~date, y = ~value, color = ~variable) %>%
add_lines()
# show plot
p