使用split.screen以交互方式绘制多个图形,并保持一个常量

使用split.screen以交互方式绘制多个图形,并保持一个常量,r,graphics,interactive,R,Graphics,Interactive,我正在使用R绘制一幅多图形图像,其中一幅具有交互功能。我正在使用split.screen来执行此操作(因为我尝试使用par()和base R图形来正确执行此操作失败) 我的目标是保持每个屏幕(1)jth绘图的显示,同时屏幕(2)绘图图形以交互方式更新k次。。 但是,即使我设置了erase=FALSE或TRUE,每次它在子循环中迭代时,第一个绘图都会被清除并显示一个空白图像。关于如何保持第一个绘图图像,每次子循环,k更新其图形,有什么想法吗 split.screen(figs=c(1,2),era

我正在使用R绘制一幅多图形图像,其中一幅具有交互功能。我正在使用
split.screen
来执行此操作(因为我尝试使用
par()
和base R图形来正确执行此操作失败)

我的目标是保持每个
屏幕(1)
j
th绘图的显示,同时
屏幕(2)
绘图图形以交互方式更新
k
次。。 但是,即使我设置了erase=
FALSE
TRUE
,每次它在子循环中迭代时,第一个绘图都会被清除并显示一个空白图像。关于如何保持第一个绘图图像,每次子循环,
k
更新其图形,有什么想法吗

split.screen(figs=c(1,2),erase=TRUE)
for(j in 1:5){
    screen(1)
    plot(rnorm(3))
    screen(2)
for(k in 1:5){

    plot(rnorm(3))
    par(ask=TRUE)
             }
}

  • 从帮助更新
这些功能与在设备上安排绘图的其他机制完全不兼容:
par(mfrow)、par(mfcol)
'layout()

我想这就解释了
par(ask=TRUE)
。如果有人可以使用
par()
和基本图形函数来实现这一点,我仍然很感兴趣


我找不到任何
par()

## draw first plot
par(mfcol=c(1,2), xpd=NA)
plot(rnorm(3))
plot(1,1) # dummy plot

## update subplot k times
for(k in 1:5) { 
  rect(grconvertX(par("fin")[1], from="inches"),
       grconvertY(0, from="inches"),
       grconvertX(par("fin")[1]*2, from="inches"),
       grconvertY(par("fin")[2], from="inches"), col="white", border=NA)  ## cover-up
  subplot( plot(rnorm(3)), 1, 1, size=par("pin") )  
  readline("Hit <Return> to see next plot: ")
}
##绘制第一个绘图
par(mfcol=c(1,2),xpd=NA)
绘图(表格(3))
地块(1,1)#虚拟地块
##更新子批k次
对于(k在1:5中){
rect(GRX(par(“fin”)[1],from=“inches”),
grconvertY(0,from=“英寸”),
grconvertX(第[1]*2段,从=“英寸”),
grconvertY(par(“fin”)[2],from=“inches”),col=“white”,border=NA)35;#
子地块(地块(rnorm(3)),1,1,尺寸=标准(“pin”))
readline(“点击查看下一个绘图:”)
}

添加一个
flush.console()
Sys.sleep()
就可以了

split.screen(figs=c(1,2),erase=TRUE)
for(j in 1:5){
  screen(1)
  plot(rnorm(3))
  flush.console()
  Sys.sleep(0.5)
  for(k in 1:5){
    screen(2)
    plot(rnorm(3))
    par(ask=TRUE)
    flush.console()
    Sys.sleep(0.5)
  }
}

根据警告,这仍然会抑制par(ask=TRUE)
,但它应该可以防止第一个绘图在第二个绘图迭代时变为空白。

nice。但它仍然会忽略par(ask=TRUE),如果我插入,它会被覆盖。我与par(mfg)有相同的问题方法。我错过了那个细节。太糟糕了,子地块忽略了询问。使用
readline
的变通方法对您有效吗?(参见上面的编辑)一点也不坏。我投了更高的票,我会等着看是否有人能在基本图形中做到这一点,但如果我不能得到任何其他结果,我会关闭投票,因为它解决了问题。谢谢。PS。你是从我可以买的图形书中得到的,还是仅仅从阅读软件包中得到的。谢谢+1!我在编辑交互函数时发现了readline由同事写的