我正在尝试监控收敛循环的状态,而且我似乎无法在每次迭代时更新图形。
以下是一些示例代码:
print(plot(c(0,1)~c(0,100)))
for(i in seq(100)) {
Sys.sleep(.1)
print(points( runif(1)~i ))
}
请注意,图表仅在绘制完所有内容后更新。我需要它来更新每个循环迭代。我认为print
会这样做,但它不起作用。
更新
这是一个特定于RStudio的问题,因为它在基础R中正常工作。有没有办法在每次循环迭代中强制在RStudio中绘图?
答案 0 :(得分:5)
使用X11()
(或Windows上的win()
)启动单独的图形设备并使用它。
虽然我的RStudio设置上的情节似乎更新了。我的测试很简单:
plot(1:10);for(i in 1:10){points(10-i,i);Sys.sleep(1)}
我看到第一组10个点,然后在RStudio嵌入式图形窗口中以一秒的间隔出现下一个组。