制作一系列通过点击进行的绘图

时间:2011-05-17 12:58:47

标签: r

在下面的示例中,我希望能够通过鼠标单击(或键盘输入)来控制何时进入下一个绘图

for (i in 1:5){
    plot(1:i)
    Sys.sleep(1)
    #add something here that requests mouse click to proceed
}

这可能吗? X11()帮助文件中有一个设置为“clickToConfirm”,但我无法解决它的问题。

能够使用箭头键在图表中来回滚动对我也很有帮助。这可能吗?

目前,如果我需要查看大量的图表,我将它们输出到一个大的.pdf文件中并在那里滚动它们,但这有点麻烦。

由于

汤姆

3 个答案:

答案 0 :(得分:14)

在R中,可以通过设置par(ask=TRUE)来完成。请尝试以下代码,该代码显示退出函数时如何重置par:

op <- par(ask=TRUE)
for (i in 1:5){
    plot(1:i)
}
par(op)

如果您想保留要浏览的历史记录,可以打开一个窗口并点击recording菜单中的History,也可以自行打开窗口并显示历史记录。在函数中演示:

plot.fun <- function(){
    windows(record=TRUE) # opens a window and starts recording
    op <- par(ask=TRUE)
    on.exit(par(op))

    for (i in 1:5){
        plot(1:i)
    }
    windows.options(record=FALSE) #stops recording.
}
plot.fun()

然而,这将保留历史中所有以前的图表以供浏览,因此如果您运行此代码3次,您将在图表历史记录中包含15个图表。另请注意,打开的绘图窗口将继续录制,直到您关闭菜单中的录制内容。

您可以使用绘图历史记录,因为您将拥有包含已保存的绘图历史记录的变量.SavedPlots。可以使用绘图窗口中的菜单History > clear history清除它。如果你想从控制台清除历史记录,你可以通过

来破解它
.SavedPlots <- NULL 

但我建议你不要这样做,因为更改.SavedPlots变量会导致R崩溃。

另请参阅?windows和?recordPlot以获取更多信息。但是当你接近R的内部代码时,如果你开始玩这些东西,请注意你可能会遇到相当尴尬的行为。

答案 1 :(得分:7)

使用箭头键在图表之间来回滚动:它取决于平台/ R界面。

  • Windows:有一个录音功能(参见R for Windows FAQ的Q5),它使用Page Up / Page Down
  • MacOS:在标准GUI下,Quartz窗口有Apple-left和Apple-right arrow
  • 在标准的Unix(无GUI)界面下,事情更加有限。你可以使用RStudio(现在有很多嗡嗡声)......我原本认为JGR也有情节历史,但它似乎没有...

答案 2 :(得分:5)

您可以使用定位器 - 现在更改点击

for (i in 1:5){
    plot(1:i)
    locator(1)
}