【问题标题】:Draw abline outside of plot margins on one side only仅在一侧在绘图边缘之外绘制 abline
【发布时间】:2017-03-06 02:35:49
【问题描述】:

我正在研究一个 R 绘图,该绘图将被我用 abline() 创建的垂直线分成两部分。我希望该 abline 仅在一侧越过我的绘图边界。

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

  • 有没有办法在基础 R 中做到这一点? (或者我必须重建 ggplot 等的全部内容?)

  • 我觉得关键可能是figure region之间的区别, device region等但无法真正确定差异 之间。我看着这个 source 但至少对于我的情节来说,这些设置似乎相同 事情 - 如果有人在这里也有一些帮助,那就太酷了!

这是我的方法:

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

以及我得到/想要的:

感谢任何帮助!

【问题讨论】:

    标签: r plot par


    【解决方案1】:

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

    【讨论】:

    • 这个答案很漂亮,谢谢你的帮助!
    猜你喜欢
    • 2014-10-09
    • 2014-07-27
    • 2018-07-09
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-06-02
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多