I have the following data:
x=strptime(20010101:20010110)
y=1:10
z=data.frame(x,y)
So my data is this:
x y
1 2001-01-01 1
2 2001-01-02 2
3 2001-01-03 3
4 2001-01-04 4
5 2001-01-05 5
6 2001-01-06 6
7 2001-01-07 7
8 2001-01-08 8
9 2001-01-09 9
10 2001-01-10 10
When I create a plot in base using:
plot(x,y)
grid(NULL,NULL)
My vertical grid does not align with the date tick marks. I know this seems like a pretty simple problem, but I have not found a solution to this anywhere. Is there a way to get the vertical grid to align with the date tick marks using base that does not require me to do this:
abline(v=as.numeric(strptime(c(20010102,20010104,20010106,20010108,20010110),'%Y%m%d')))
I have a lot of plots with different dates and I would really like to automate this as much as possible, hopefully using base.
abline
can extract the date ticks from your POSIXlt vector (via strptime).
x=strptime(20010101:20010110,format="%Y%m%d")
y=1:10
plot(x,y)
grid(nx=NA, ny=NULL)
abline(v=axis.POSIXct(1, x=pretty(x)),col = "lightgray", lty = "dotted", lwd = par("lwd"))
I would suggest creating your own function which would add both horizontal and vertical grids.
my.grid <-function(){
grid(nx=NA, ny=NULL)
abline(v=axis.POSIXct(1, x=pretty(x)),col = "lightgray", lty = "dotted", lwd =
par("lwd"))
}
plot(x,y)
my.grid()