我想在一张图中使用abline
绘制一条水平线。
代码如下:
plot(c(-2,3), c(-1,5), type = "n", xlab = "x", ylab = "y", asp = 1)
abline(h = 0, v = 0, col = "gray60")
我得到的输出是
![我得到的图形](https://istack.dev59.com/amJPh.webp)
![期望的图形](https://istack.dev59.com/LqAbd.webp)
abline
画出的线被限制在绘图区域内,就像第二幅图所示。关于xpd
参数的评论:
来自par
帮助文档: xpd
参数是一个逻辑值或NA。如果为FALSE,则所有绘图都被剪切到绘图区域;如果为TRUE,则所有绘图都被剪切到图形区域;如果为NA,则所有绘图都被剪切到设备区域。
示例:
par(xpd=T)
plot(c(-2,3), c(-1,5), type = "n", xlab = "x", ylab = "y", asp = 1)
abline(h = 0, v = 0, col = "gray60")
提供:
然而:
par(xpd=F) # this is the default value
plot(c(-2,3), c(-1,5), type = "n", xlab = "x", ylab = "y", asp = 1)
abline(h = 0, v = 0, col = "gray60")
提供:
最后,
par(xpd=NA,mfrow=c(1,2))
plot(c(-2,3), c(-1,5), type = "n", xlab = "x", ylab = "y", asp = 1)
abline(h = 0, v = 0, col = "gray60")
par(xpd=NA)
,这使您可以在绘图区域外进行绘制。如果您重新设置par(xpd=F)
,则所有绘图将被裁剪为绘图区域,就像您的第二张图一样。请参见?par
。 - koekenbakkerpar(xpd=F)
吧?因为设置par(xpd=T)
会让线条超出绘图区域... - Cath