【问题标题】:Code to clear all plots in RStudio清除 RStudio 中所有绘图的代码
【发布时间】:2014-05-03 14:48:09
【问题描述】:

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

是否有代码可以清除 Rstudio 中的所有绘图?

【问题讨论】:

    标签: r plot rstudio


    【解决方案1】:

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

    dev.off(dev.list()["RStudioGD"])
    

    但是,如果您没有做任何其他事情,那么只需使用 dev.off() 就可以了。

    【讨论】:

    • 关于已接受答案的警告。这可以在 RStudio 的控制台中顺利运行,但是在脚本中使用它时我们会看到奇怪的结果(例如,与 OP 提到的其他项目一起,每次运行特定脚本时清理环境)。第二次运行后,您无法向后单击生成的绘图列表,而不会出现有关无法打开连接或找不到临时文件的失败和警告;从脚本运行时,这似乎不会刷新“情节”历史记录?
    • (Mac OSX Yosemite 和 Windows 7,RStudio 0.99.486)
    • @mojoronomous 对我来说很好。在 Ubuntu 上运行 RStudio 0.99.484。
    • 这在 RStudio(v 1.1.463,Linux x86_64)中处理 R 降价时没有帮助。地块仍然存在。 Run -> Restart R and clear output 成功了。
    【解决方案2】:

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

    graphics.off()
    

    改为。

    【讨论】:

    • 这似乎不是一个改进。在脚本中 graphics.off() 和 dev.off() 都会导致与 mojoronomous 描述的完全相同的问题/错误。 (RStudio 1.0.44, R 3.3.2)
    【解决方案3】:

    为了防止在没有要清除的绘图时出现错误消息:

    if(!is.null(dev.list())) dev.off()
    

    【讨论】:

    【解决方案4】:

    我经常用

    while (dev.cur()>1) dev.off()
    

    由于我经常使用 RGL,所以我经常补充:

    while (rgl.cur()) rgl.close()
    

    【讨论】:

      【解决方案5】:

      我已经这样做了,这似乎可以正常工作而没有报告任何错误:

      # Clear all plots
      try(dev.off(dev.list()["RStudioGD"]),silent=TRUE)
      try(dev.off(),silent=TRUE)
      

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

      【讨论】:

        猜你喜欢
        • 2021-02-08
        • 2020-06-07
        • 2013-07-29
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2019-01-31
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多