Reputation: 60004
When I let plot
draw the axis, grid
aligns with ticks
by default.
However, my plot is somewhat involved:
mytime <- as.POSIXct("2015-08-20") + seq(0,by=3600,length.out=7*24)
plot(x=mytime,y=rnorm(7*24),xaxt="n")
ticks <- mytime[seq(1,by=12,to=length(mytime))]
axis(1, ticks, strftime(ticks, "%a %H:%M"))
grid(ny=NULL,nx=14)
and I cannot get the grid
to align with the ticks
:
How do I make them align?
Upvotes: 1
Views: 599
Reputation: 1388
As pointed in the previous answer, the solution is using the abline
function and avoid that the vertical guidelines are plotted in wrong locations. You can achieve both things by replacing the last line of your code
grid(ny=NULL,nx=14)
by
grid(ny=NULL,nx=NA)
abline(v = ticks, lty = 3, col = "lightgray")
to obtain
By the way, there are previous questions related to this that could have helped you:
Upvotes: 2
Reputation: 60004
Looks like abline
is the answer:
mytime <- as.POSIXct("2015-08-20") + seq(0,by=3600,length.out=7*24)
plot(x=mytime,y=rnorm(7*24),xaxt="n")
ticks <- c(mytime[seq(1,by=12,to=length(mytime))],mytime[1]+7*24*3600)
axis(1, ticks, strftime(ticks, "%a %H:%M"))
grid(ny=NULL,nx=NA)
abline(v=ticks[seq(1,length(ticks),2)],lty="dotted",col="lightgray")
Upvotes: 0