У меня есть большой фрейм данных days.data
, сделанный из наблюдений за потреблением энергии в течение нескольких недель. Это df
- это rbind
нескольких дней, где каждый день имеет одинаковое количество строк (60 * 60 * 24). Где каждый ряд является наблюдением энергии. Из этого большого df
я выбрал два дня i.data,
, чтобы исследовать потребление.
df <- days.data[i.data,] %>%
mutate(date = as.factor(as.Date(time,tz="CET")))%>%
select( time, kWh, date)
df$csum <- ave(df$kWh, df$date, FUN=cumsum)
ggplot(df, aes(x = time, y = csum)) +
geom_line(aes(color = date, linetype = date)) +
scale_color_manual(values = c("darkred", "steelblue")) +
scale_x_datetime(
breaks = seq(df[1,1],
df[nrow(df),1], 36000),
labels = date_format(format="%H:%M", tz = "CET"),
expand = c(0, 0))
Пока все хорошо, сюжет выглядит не так уж плохо.
![enter image description here](https://i.stack.imgur.com/xR4dT.png)
Дело в том, что я хотел бы объединить оба графика, а не с интервалом в одну неделю ... Поскольку оба дня имеют одинаковый размер, это должно быть возможно. Как только я пытаюсь использовать #df$time <- as.numeric(strftime(df$time,"%H:%M", tz = "CET"))
ggplot говорит мне, что у меня есть дискретные значения,… мне нужно что-то подобное, но с обоими графиками:
![enter image description here](https://i.stack.imgur.com/7ox1a.png)
Вот сводка моих данных (df из 172800 строк ...)
> summary(df)
time kWh date csum
Min. :2020-03-20 00:00:00 Min. :0.0000000 2020-03-20:86400 Min. : 0.00
1st Qu.:2020-03-20 11:59:59 1st Qu.:0.0000000 2020-03-27:86400 1st Qu.: 0.00
Median :2020-03-23 23:59:59 Median :0.0000000 Median :47.15
Mean :2020-03-23 23:59:59 Mean :0.0008111 Mean :36.78
3rd Qu.:2020-03-27 11:59:59 3rd Qu.:0.0000000 3rd Qu.:69.43
Max. :2020-03-27 23:59:59 Max. :0.0881141 Max. :70.73
> head(df)
time kWh date csum
1 2020-03-20 00:00:00 0 2020-03-20 0
2 2020-03-20 00:00:01 0 2020-03-20 0
3 2020-03-20 00:00:02 0 2020-03-20 0
4 2020-03-20 00:00:03 0 2020-03-20 0
5 2020-03-20 00:00:04 0 2020-03-20 0
6 2020-03-20 00:00:05 0 2020-03-20 0
>
Что я могу попробовать дальше?