Я думаю, что вы допустили ошибку в фильтрации, если у вас есть два или более условий, вы должны использовать% в% или указать "|", например,
highlight_max <- canteen_menu_data %>%
filter(date == c("2016-10-04","2017-09-27"))
Должно быть:
filter(date %in% c("2016-10-04","2017-09-27"))
или:
filter(date == "2016-10-04"| date == "2017-09-27")
Также я не уверен, является ли ваш столбец date
character
или Date
. Пожалуйста, проверьте, используя str(canteen_menu_date)
. Мы можем смоделировать некоторые данные ниже, и я установил столбец даты так, чтобы можно было воспроизводить правильные точки:
set.seed(999)
canteen_menu_data = data.frame(
date = seq(as.Date("2016-10-01"),as.Date("2017-12-31"),by="day"),
sales = runif(457,min=100,max=400)
)
highlight_max <- canteen_menu_data %>%
filter(date %in% as.Date(c("2016-10-04","2017-09-27")))
highlight_min <- canteen_menu_data %>%
filter(date %in% as.Date(c("2016-12-27","2017-07-28")))
highlight_christmas2016 <- canteen_menu_data %>%
filter(date %in% as.Date(c("2016-12-21","2016-12-30")))
highlight_christmas2017 <- canteen_menu_data %>%
filter(date %in% as.Date(c("2017-12-18","2017-12-21")))
canteen_menu_data %>%
ggplot(aes(x=date,y=sales)) +
geom_line(alpha=0.3) +
geom_point(data=highlight_max, aes(x=date,y=sales), color='red',size=3) +
geom_point(data=highlight_min, aes(x=date,y=sales), color='red',size=3) +
geom_point(data=highlight_christmas2016, aes(x=date,y=sales), color='darkred',size=1) +
geom_point(data=highlight_christmas2017, aes(x=date,y=sales), color='darkred',size=1)