只在图形边缘之外的一侧绘制 abline

5
我正在制作一个 R 绘图,将通过使用 abline() 创建的垂直线分成两个部分。我希望该 abline 只在一侧超出绘图边界。
我在这篇文章中找到了一个有用的设置 par(xpd=) 的方法。但是,我无法弄清如何使该命令使该线只在一侧超过绘图边界,如下面的截屏所示。
  • 是否有一种基于 R 基础的方法可以实现这一点?(还是我必须在 ggplot 中重新构建整个东西等?)

  • 我感觉关键可能是 figure regiondevice region 等之间的差异,但我无法确定这些之间的区别。我查看了这份文件 ,但至少对于我的情况,这些设置似乎相当于相同的事情 - 如果有人能在这方面提供帮助那就太好了!

这是我的方法:
plot(100, 100)
par(xpd=TRUE)
abline(v=70, lty=3)

我想要的/得到的内容:

我的图表

非常感谢您的帮助!

1个回答

5
使用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)

1
这是一个很好的答案,感谢您的帮助! - patrick

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接