aprilian
aprilian

Reputation: 650

ggplot geom vline between two dates on x axis

Is there any way to place geomvline between two dates on x axis. For example like red line in below picture.

My data is something like this below where can be dynamic in length.

df <- data.frame(Date= seq(as.Date("2019-01-11"), as.Date("2019-01-20"), by="days")
,value = runif(10, 0, .99))

ggplot(data = df , aes(x = Date, y = value)) +geom_line()+
scale_x_date(date_labels= "%d-%b-%y",date_breaks  ="1 day")+
geom_vline(aes(xintercept=df[["Date"]][5]),linetype="dotted",col="blue", size=1.5)

enter image description here

I tried with position dodge

Upvotes: 1

Views: 1973

Answers (1)

Chase
Chase

Reputation: 69231

You can add to dates in fractional units:

library(ggplot2)
df <- data.frame(Date= seq(as.Date("2019-01-11"), as.Date("2019-01-20"), by="days")
                 ,value = runif(10, 0, .99))
ggplot(data = df , aes(x = Date, y = value)) +geom_line()+
  scale_x_date(date_labels= "%d-%b-%y",date_breaks  ="1 day")+
  geom_vline(aes(xintercept=df[["Date"]][5]),linetype="dotted",col="blue", size=1.5) +
  geom_vline(aes(xintercept=df[["Date"]][5]+.5),linetype="solid",col="pink", size=3)

Created on 2019-02-22 by the reprex package (v0.2.1)

Upvotes: 4

Related Questions