仅在一侧的图边距外绘制 abline
Draw abline outside of plot margins on one side only
我正在绘制一个 R 图,它将被我用 abline()
创建的一条垂直线分成两部分。我希望 abline 在一个图上越过我的图的边界只有一面。
我找到了 this helpful post about setting par(xpd=)。但是,我无法弄清楚如何让这条线只在一侧越过绘图边界,如下面的屏幕截图所示。
有没有办法在 base R 中做到这一点? (或者我必须重建
ggplot 等中的所有内容?)
我感觉关键可能是区别figure region
,
device region
,等等,但无法真正确定差异
在那些之间。我看着这个
source
但至少对于我的情节来说,这些设置似乎是一样的
事情-如果有人在这里也能提供帮助,那就太好了!
这是我的方法:
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)
我正在绘制一个 R 图,它将被我用 abline()
创建的一条垂直线分成两部分。我希望 abline 在一个图上越过我的图的边界只有一面。
我找到了 this helpful post about setting par(xpd=)。但是,我无法弄清楚如何让这条线只在一侧越过绘图边界,如下面的屏幕截图所示。
有没有办法在 base R 中做到这一点? (或者我必须重建 ggplot 等中的所有内容?)
我感觉关键可能是区别
figure region
,device region
,等等,但无法真正确定差异 在那些之间。我看着这个 source 但至少对于我的情节来说,这些设置似乎是一样的 事情-如果有人在这里也能提供帮助,那就太好了!
这是我的方法:
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)