如何将绘图函数绑定到 R 中的 x11()?

How to bind plot function to x11() in R?

我有一个有无限循环的函数,在它里面绘制了 image 对象,我创建了一个 x11() window 并在那里绘制了它,但是当我关闭window,该函数在后台保留 运行。我的 R 代码如下所示:

plotInfinite <- function()
{
  while(TRUE)
  {
    mat <- matrix(sample(0:1, 50*50, replace = TRUE), 50, 50)
    image(mat)
    Sys.sleep(0.1)
  }
}

x11()
plotInfinite()

是否有可能以某种方式将我的函数调用绑定到 x11() window,这样当我关闭 window 时,函数调用也会终止,即从无限循环中中断?

你可以在函数中定义它

plotInfinite <- function()
{
  dev=dev.cur() # get cur device name
  tt=TRUE
  while(tt==TRUE)
  {

    mat <- matrix(sample(0:1, 50*50, replace = TRUE), 50, 50)
    image(mat)
    Sys.sleep(0.1)
    if(dev!=dev.cur()){ tt=FALSE} #check if device changed
  }
}

然后

x11()
plotInfinite()

关闭前会工作