Вы можете начать с преобразования вашего столбца даты в форматированную дату propoer с помощью as.Date
. Поскольку доступна только мотылек, я установил первый день месяца, но вы также можете указать 15-й.
df1$date <- as.Date(paste0(df1$date, "-01"))
Когда мы теперь строим данные, ось X красиво отформатирована:
library(ggplot2)
ggplot(df1, aes(date, amount)) +
geom_point()
Для вертикальных линий извлеките требуемые даты из data.frame, а затем добавьте их на график:
ggplot(df1, aes(date, amount)) +
geom_point() +
geom_vline(xintercept = df1$date[r1], alpha = 0.5)
Теперь это также работает, если вы переключаете порядок звонков
ggplot(df1, aes(date, amount)) +
geom_vline(xintercept = df1$date[r1], alpha = 0.5) +
geom_point()
Данные
df1 <-
structure(list(date = c("2012-07", "2012-08", "2012-09", "2012-10", "2012-11",
"2012-12", "2013-01", "2013-02", "2013-03", "2013-04",
"2013-05", "2013-06", "2013-07"),
amount = c(2L, 4L, 4L, 3L, 2L, 3L, 5L, 4L, 3L, 2L, 1L, 4L, 3L)),
class = "data.frame", row.names = c(NA, -13L))
r1 <- c(1, 2, 4, 6, 7, 9)