Ваша проблема в том, что вам нужно, чтобы Date был фактором, но когда он находится в форме Date, ggplot принимает его как непрерывную переменную.
Я смоделировал некоторые данные, просто чтобы иметь возможность построить график, следующий код - тот, который я использовал для генерации данных:
library(tidyverse)
library(lubridate)
DateTimes <- seq(
from=as.POSIXct("2017-1-02 0:00", tz="UTC"),
to=as.POSIXct("2017-1-09 23:59", tz="UTC"),
by="15 min"
)
DF <- data.frame(Date = as.Date(DateTimes), timestamp = strftime(DateTimes, format="%H:%M:%S"), Weekday = weekdays(DateTimes)) %>% filter(Weekday == "Monday") %>% mutate(load = as.numeric(timestamp)*20 + -as.numeric(timestamp)^2 + rnorm(nrow(DF), sd = 1000) + (as.numeric(Date))) %>% mutate(load = ifelse(Date < ymd("2017_01_4"), load -5000, load))
Как только я это сделаю, если я сделаю следующее:
ggplot(DF, aes(x = timestamp, y = load)) + geom_line(aes(group = as.factor(Date), color = as.factor(Date
Я получаю следующий график
Я думаю, это то, что вам нужно, если вам нужна дополнительная помощь в формировании оси x и легенды, дайте мне знать
Приветствия