仅在一侧的图边距外绘制 abline

Draw abline outside of plot margins on one side only

我正在绘制一个 R 图,它将被我用 abline() 创建的一条垂直线分成两部分。我希望 abline 在一个图上越过我的图的边界只有一面。

我找到了 this helpful post about setting par(xpd=)。但是,我无法弄清楚如何让这条线只在一侧越过绘图边界,如下面的屏幕截图所示。

这是我的方法:

plot(100, 100)
par(xpd=TRUE)
abline(v=70, lty=3)

以及我得到/想要的:

感谢任何帮助!

使用lines。根据需要设置 y 的限制。

plot(100, 100)
par(xpd = TRUE)
lines(x = c(70,70), y = c(45, par('usr')[4]), lty = 2)
# par('usr') gives the 4 extremes of plot
# par('usr')[4] gives the extreme on top

另一种选择是不要乱用 xpd 而是使用 axis。使用 tck 定义超出图的线的长度。 tck = -0.25 表示长度是图底部高度的四分之一。

plot(100, 100)
par(xpd = FALSE) #Only because we made TRUE above 
abline(v = 70, lty = 2)
axis(1, at = 70, labels = NA, tck = -0.25, lty = 2)