仅在一侧的绘图边距之外绘制斜面

时间:2017-03-04 20:03:35

标签: r plot par

我正在制作一个R图,它将通过我用abline()创建的垂直线分成两部分。我希望仅在一侧的范围上划过我的情节边界。

我发现this有关设置par(xpd=)的有用帖子。但是,我无法弄清楚如何获取此命令只使一行超过一侧的绘图边框,如下面的屏幕截图所示。

  • 有没有办法在基地R做到这一点? (或者我必须重建 ggplot中的整件事等?)

  • 我觉得关键可能是figure region之间的差异, device region等,但无法真正确定差异 之间。我看着这个 source 但至少在我的情节中,这些设置似乎相同 事情 - 如果有人在这里也有帮助的话会很酷!

这是我的方法:

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

我得到/想要的东西:

My plot

感谢任何帮助!

1 个答案:

答案 0 :(得分: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)