r语言 - 我如何使用abline()绘制数据背后的网格线



当我使用abline()在绘图上绘制网格线时,网格线绘制在数据上。

是否有一种方法来绘制abline()线背后的数据?我觉得这样更好看。

的例子:

x <- seq(0, 10)
y <- x
plot(x, y, col = 'red', type = 'o', lwd = 3, pch = 15)
abline(h = seq(0, 10, .5), col = 'lightgray', lty = 3)
abline(v = seq(0, 10, .5), col = 'lightgray', lty = 3)

生成的图在数据上有灰色网格线(红线)。我想把红线放在灰色线的上面

plot()panel.first参数可以采用函数列表或向量,因此您可以将abline()调用放在那里。

plot(1:4, panel.first = 
       c(abline(h = 1:4, lty = 2, col = 'grey') 
        ,abline(v = 1:4, lty = 2, col = 'grey')))

使用plot()设置绘图窗口,但使用type = "n"不绘制任何数据。然后调用abline(),或者使用grid(),然后使用任何合适的低级函数绘制数据(这里points()就可以了)。

x <- seq(0, 10)
y <- x
plot(x, y, type = "n")
abline(h = seq(0, 10, .5), col = 'lightgray', lty = 3)
abline(v = seq(0, 10, .5), col = 'lightgray', lty = 3)
points(x, y, col = 'red', type = 'o', lwd = 3, pch = 15)

## using `grid()`
plot(x, y, type = "n")
grid()
points(x, y, col = 'red', type = 'o', lwd = 3, pch = 15)

关于如何根据abline()版本指定网格的详细信息,请参阅?grid

先用type="n"绘制坐标。然后放入网格线,然后用常规的绘图类型绘制:

plot(x, y, col = 'red', type = 'n', lwd = 3, pch = 15)
abline(h = seq(0, 10, .5), col = 'lightgray', lty = 3)
abline(v = seq(0, 10, .5), col = 'lightgray', lty = 3)
par(new=TRUE)
plot(x, y, col = 'red', type = 'o', lwd = 3, pch = 15)

我承认我一直认为par参数的名字是"向后的"。"

另一种创建网格线的方法是在绘制时或在axis函数中设置tck=1(您可能仍然希望在创建网格线后使用points绘制点)。

最新更新