jon*_*jon 26 r graph gridlines
我很尴尬地问这个简单的问题,但每当我创建一个情节时,我已经开始思考几天:
plot (x = 1:10, y = rnorm (10, 5, 2))
grid (10,10, lty = 6, col = "cornsilk2")
Run Code Online (Sandbox Code Playgroud)
我想将网格定位在轴标记的位置,即x轴为2,4,6,8,10,y轴为3,4,5,6,7,8.

我想在绘图大小更改默认标签行为更改时自动执行该过程.见下图:

jor*_*ran 39
从和论点的?grid描述:nxny
当为NULL时,默认情况下,网格与相应默认轴上的刻度线对齐(即,由axTicks计算的刻度线)
plot (x = 1:10, y = rnorm (10, 5, 2))
grid (NULL,NULL, lty = 6, col = "cornsilk2")
Run Code Online (Sandbox Code Playgroud)
Rob*_*ick 20
作为参考,如果我们没有定义自定义刻度间隔,有一种方法可以直接从plot()命令控制网格和轴参数:
plot(x = 1:10, y = rnorm(10, 5, 2), xlim=c(1, 10), ylim=c(1, 10), panel.first=grid())
Run Code Online (Sandbox Code Playgroud)
plot.default()文档提供了有关这些参数的更多信息.
使用自定义刻度间隔时,最简单的方法是使用abline绘制网格:
plot(x = 1:10, y = rnorm(10, 5, 2), xaxp=c(1, 10, 10), yaxp=c(1, 10, 10), axes=FALSE)
axis(1, 1:10)
axis(2, 1:10)
abline(h=1:10, v=1:10, col="gray", lty=3)
Run Code Online (Sandbox Code Playgroud)

对于后代来说,这是一种冗长的手动方式:
plot (x = 1:10, y = rnorm (10, 5, 2))
grid (lty = 6, col = "cornsilk2")
xaxp <- par("xaxp")
yaxp <- par("yaxp")
abline(v=seq(xaxp[1], xaxp[2], (xaxp[2]-xaxp[1])/xaxp[3]), lty=6, col = "cornsilk2")
abline(h=seq(yaxp[1], yaxp[2], (yaxp[2]-yaxp[1])/yaxp[3]), lty=6, col = "cornsilk2")
Run Code Online (Sandbox Code Playgroud)