代码清除RStudio中的所有图

dpe*_*pel 56 plot r rstudio

我有清除工作区的rm(list=ls())代码:以及清除控制台的代码:cat("\014")

是否有代码清除Rstudio的所有情节?

Das*_*son 63

dev.off()关闭当前的图形设备.只要我目前没有打开不同的图形设备,这就可以清除RStudio中的所有图形.如果你确实打开了其他图形设备,那么你可以dev.list()用来确定哪个图形设备是RStudio.以下应该这样做,但我还没有彻底测试过.

dev.off(dev.list()["RStudioGD"])
Run Code Online (Sandbox Code Playgroud)

但如果你没有做任何其他事情,那么只要使用就dev.off()应该照顾它.

  • 关于接受的答案的警告.这在RStudio的控制台中顺利运行,但是我们在脚本中使用它时会看到奇怪的结果(例如,与OP提到的其他项目一起,每次运行特定脚本时擦除环境).在第二次运行之后,您无法向后浏览生成的图表列表,而不会出现无法打开连接或查找临时文件的故障和警告; 从脚本运行时,似乎没有刷新"情节"历史记录? (5认同)

Wal*_*cio 25

dev.off()仅适用于交互式会话.如果您对在脚本中实现此类行为感兴趣,则应使用

graphics.off()
Run Code Online (Sandbox Code Playgroud)

代替.


小智 6

我通常使用

while (dev.cur()>1) dev.off()
Run Code Online (Sandbox Code Playgroud)

因为我经常使用 RGL,所以我经常补充:

while (rgl.cur()) rgl.close()
Run Code Online (Sandbox Code Playgroud)


小智 5

如果没有要清除的图表,请防止出现错误消息:

if(!is.null(dev.list())) dev.off()
Run Code Online (Sandbox Code Playgroud)


Mat*_*ttG 5

我已经这样做了,这似乎没有报告任何错误:

# Clear all plots
try(dev.off(dev.list()["RStudioGD"]),silent=TRUE)
try(dev.off(),silent=TRUE)
Run Code Online (Sandbox Code Playgroud)

我将其他答案中的说明与此处的错误处理答案合并: