如何将绘图区域限制在精确的区域

how to confine plot region at exactly area

比如我想画一个盒子里面有网格,代码如下:

plot(rnorm(10), rnorm(10), type = "n", asp = 1, xlim = c(0, 1), ylim = c(0, 1), axes = FALSE, pty = "s", bty = "o", xlab = "", ylab = "")
abline(h = seq(0, 1, 0.2), v = seq(0, 1, 0.2), col = "lightgray")
abline(a = 0, b = 1, col = "lightgray")
axis(1, seq(0, 1, 0.2), seq(0, 1, 0.2), pos = 0)
axis(2, seq(0, 1, 0.2), seq(0, 1, 0.2), pos = 0)

但是线条超出了区域(0, 0) 到(1, 1),就像有胡须的盒子。这可能是绘图区域的问题,如何将绘图区域限制在精确的区域,例如从 (0, 0) 到 (1, 1)?

非常感谢!

plot(rnorm(10), rnorm(10), type = "n", asp = 1, xlim = c(0, 1), ylim = c(0, 1), 
     axes = FALSE, pty = "s", bty = "o", xlab = "", ylab = "")

axis(1, seq(0, 1, 0.2), seq(0, 1, 0.2), pos = 0)
axis(2, seq(0, 1, 0.2), seq(0, 1, 0.2), pos = 0, las=1)

您可以使用 clip 来防止注释超出剪辑区域。四个参数决定了裁剪矩形的两个坐标。

clip(0,1,0,1)
abline(h = seq(0, 1, 0.2), v = seq(0, 1, 0.2), col = "lightgray")
abline(a = 0, b = 1, col = "lightgray")