【发布时间】:2014-05-03 14:48:09
【问题描述】:
我有清除工作区的代码:rm(list=ls()) 和清除控制台的代码:cat("\014")
是否有代码可以清除 Rstudio 中的所有绘图?
【问题讨论】:
我有清除工作区的代码:rm(list=ls()) 和清除控制台的代码:cat("\014")
是否有代码可以清除 Rstudio 中的所有绘图?
【问题讨论】:
dev.off() 关闭当前图形设备。只要我目前没有打开其他图形设备,这将为我清除 RStudio 中的所有绘图。如果您确实打开了其他图形设备,那么您可以使用dev.list() 来确定哪个图形设备是 RStudio 的。以下应该这样做,但我还没有彻底测试过。
dev.off(dev.list()["RStudioGD"])
但是,如果您没有做任何其他事情,那么只需使用 dev.off() 就可以了。
【讨论】:
Run -> Restart R and clear output 成功了。
dev.off() 仅适用于交互式会话。如果您有兴趣在脚本中实现此类行为,您应该使用
graphics.off()
改为。
【讨论】:
为了防止在没有要清除的绘图时出现错误消息:
if(!is.null(dev.list())) dev.off()
【讨论】:
我经常用
while (dev.cur()>1) dev.off()
由于我经常使用 RGL,所以我经常补充:
while (rgl.cur()) rgl.close()
【讨论】:
我已经这样做了,这似乎可以正常工作而没有报告任何错误:
# Clear all plots
try(dev.off(dev.list()["RStudioGD"]),silent=TRUE)
try(dev.off(),silent=TRUE)
我将其他答案中的说明与错误处理here的答案合并:
【讨论】: