Ken Williams
Ken Williams

Reputation: 23965

ggplot vertical line with date axis

I'm having some trouble adding a vertical line to a plot when the x-axis is a datetime (POSIXct) object. It seems to always want to put the line at the Epoch. Here's an example:

df <- data.frame(x=ymd('2011-01-01')+hours(0:24), y=runif(25))
ggplot(df, aes(x=x,y=y)) + geom_point()

without vertical line

Now I try to add a line at the third observation time:

ggplot(df, aes(x=x,y=y)) + geom_point() + geom_vline(aes(x=df$x[3]))

with vertical line

Something I'm doing wrong?

Upvotes: 10

Views: 10008

Answers (2)

Justin
Justin

Reputation: 43255

ggplot(df, aes(x=x,y=y)) + geom_point() + geom_vline(aes(xintercept=df$x[3]))

you want xintercept rather than x in your geom_vline aes.

Upvotes: 1

Andrew
Andrew

Reputation: 38619

Try doing this instead:

geom_vline(xintercept = df$x[3])

Upvotes: 5

Related Questions