我正在 R 中实现旅行商问题 (TSP) 的解决方案(模拟退火),并且我想定期输出当前的最佳路径。我已经搜索了很多关于如何在 for 循环期间输出绘图的信息,但到目前为止都失败了。
我使用 RStudio,并且希望查看生成的图表。如果您曾经看过 TSP 求解器的工作,您就会明白观看它是多么酷。这是我想查看的图形输出示例 http://www.staff.science.uu.nl/~beuke106/anneal/anneal.html
我认为内存使用不会成为问题(在大约 500,000 次迭代期间,我只期望 50-100 个图)。这是一个示例函数,我们希望在函数运行期间看到 10 个不同的图:
Plotz <- function(iter = 1000000, interval = 100000) {
x <- 1:10
for(i in 1:iter){
y <- runif(10)
if(i %% interval == 0) {
plot(x, y)
}
}
return(c(x, y))
}
Plotz()
当我运行这个程序时,我看到的只是生成的最终绘图(在 RStudio 中)。我怎样才能看到生成的图?
另外:我使用的是 Ubuntu(无论最新的稳定版本是什么)。不知道这是否相关。
提前谢谢大家。
编辑:根据墨菲船长的建议,我尝试在 Linux 终端中运行它,并且出现了图形。我仍然在想“如何在 RStudio 中做到这一点?”的问题。然而仍然相关。这是一个非常好的程序,所以也许有人知道如何才能让它发挥作用?
EDIT2:正如 Thilo 所说,这是 Rstudio 中的一个已知错误。如果有人有任何其他想法来解决这个问题而不修复软件本身,那么仍然有一些东西可以讨论。否则,就认为这个问题已经解决了。
最佳答案
调用 Sys.sleep(0)
应该会导致绘图。与 X11
解决方案不同,这也适用于 RStudio 的服务器版本。
(令我惊讶的是 dev.flush()
没有给出您希望的结果,这可能是一个错误。)
关于r - 在 RStudio 中循环期间绘图,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8772630/