将网格与刻度线对齐
Align grid with ticks
当我让plot
draw the axis, grid
aligns with ticks
by default.
不过我的剧情有点牵强:
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)
我无法让 grid
与 ticks
对齐:
如何让它们对齐?
看起来 abline
是答案:
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")
正如上一个答案中所指出的,解决方案是使用 abline
函数并避免将垂直参考线绘制在错误的位置。您可以通过替换代码的最后一行来实现这两件事
grid(ny=NULL,nx=14)
来自
grid(ny=NULL,nx=NA)
abline(v = ticks, lty = 3, col = "lightgray")
获得
顺便说一句,之前有一些与此相关的问题可能对您有所帮助:
- R: Finding the location of tick marks when plotting dates
当我让plot
draw the axis, grid
aligns with ticks
by default.
不过我的剧情有点牵强:
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)
我无法让 grid
与 ticks
对齐:
如何让它们对齐?
看起来 abline
是答案:
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")
正如上一个答案中所指出的,解决方案是使用 abline
函数并避免将垂直参考线绘制在错误的位置。您可以通过替换代码的最后一行来实现这两件事
grid(ny=NULL,nx=14)
来自
grid(ny=NULL,nx=NA)
abline(v = ticks, lty = 3, col = "lightgray")
获得
顺便说一句,之前有一些与此相关的问题可能对您有所帮助:
- R: Finding the location of tick marks when plotting dates