【问题标题】:How can I return to previous frame in R?如何返回到 R 中的上一帧?
【发布时间】:2014-10-07 20:49:03
【问题描述】:

我正在使用简单的布局在 R 中进行绘图:

layout(matrix(c(1,2),1,2))

画完图的两条边后,我需要回到第一条再画两条线(跨越到另一边,只有在画完第二条边后我才知道正确的坐标)。

我知道我可以使用 frame() 在帧之间移动,但它只会向前移动,当它返回到开头时,它会清除整个绘图。是否可以向后移动一个框架?

【问题讨论】:

  • dev.set(dev.prev())
  • @RicardoSaporta 你的意思是像layout(matrix(c(1,2),1,2)); plot(1:10, 1:10); plot(10:1, 1:10); dev.set(dev.prev()); abline(h=5)吗?这似乎不起作用(因为我预计abline 会出现在第一个情节中)。 dev.set() 似乎可以控制设备,但据我所知layout 并没有改变设备,所以我不明白为什么会这样。你能在下面给出更完整的答案来测试它吗?
  • 发布带有示例输入和所需输出的reproducible example 可能是一个更好的主意。无需返回上一帧,就可以做你想做的事。

标签: r layout plot frame


【解决方案1】:

尽管有警告,但您可以在使用布局时使用par(mfg=...) 来控制绘图的焦点:

layout(matrix(1:4,2,2)); 
plot(1:10, 1:10);
plot(10:1, 1:10);  
par(mfg=c(1,1)); 
abline(h=5)

我没想到 dev.set(dev.prev()) 会工作,因为我认为它都被写入同一个设备。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-06-18
    • 1970-01-01
    • 2018-06-21
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多