【问题标题】:Why is my chart not showing in RStudio's "Plots" pane?为什么我的图表没有显示在 RStudio“绘图”窗格中?
【发布时间】:2018-06-26 10:16:50
【问题描述】:

我已经编写了几个连接到服务器并收集一些数据并改变这些数据的函数。其中一项功能还可以将数据可视化。

因为我总是需要运行所有六个函数 - 并且因为我在需要它们时编写它们 - 我决定将它们组合成一个更大的函数(约 400 行,可能下降到大约 350 次清理后不久),而不必一个接一个地独立运行六个独立的函数。

在组合函数之前,生成可视化效果的函数完美地显示在 RStudio 的 Plots 窗口中。

由于组合了功能,因此没有显示可视化。

我添加了一条线来显示图表是否已成功生成,并且始终是;但是,我再也看不到输出了。

这是图表的代码:

if(chart == TRUE){
    ggplot(plugin_displays[plugin_displays$date <= end_date, ], aes(fill = type)) +
      geom_col(aes(x = time, y = count),
               colour = "black",
               position = "stack") +
      geom_text(aes(x = time, y = total, label = total),
                hjust = -0.15,
                vjust = 0.15,
                size = 3,
                colour = "black",
                angle = 90) +
      scale_y_continuous(limits = c(0, max(plugin_displays$total) * 1.02)) +
      labs(title = paste0("Plugin Loads & Unloads ", start_date, " - ", end_date),
           x = "Time",
           y = "Count") +
      facet_grid(.~date) +
      scale_fill_manual(values=c("forestgreen", "red")) +
      theme(plot.title = element_text(size = 25,
                                      face = "bold",
                                      colour = "black"),
            panel.grid.minor.x = element_blank(),
            panel.grid.major.x = element_blank(),
            axis.text = element_text(colour = "black",
                                     angle = 90))
    print("Chart printed.")
  } else {
    print("Chart not shown by default.  Set chart = TRUE to display chart")
  }

默认情况下,chart 设置为 FALSE,因为并不总是需要图表。要生成图表,用户在调用函数时指定TRUEchart = TRUE 并生成图表(使用if/else);否则,只是浪费处理能力。

我认为进程发生的顺序可能会影响输出,所以我将绘图移到脚本的底部,尽管"Chart printed." 窗格中仍然没有显示它消息显示。

函数作为一个整体执行完美,所需的输出正是我想要的。

在执行阶段任何时候都没有错误,数据帧都符合预期,没有任何错误。

如果我将可视化功能拆分出来,它可以独立工作,没有任何问题。如果我把它放回函数中,它仍然可以成功执行,但没有可视化。

这可能是什么原因造成的?

更新(2018 年 6 月 6 日):

有人建议将情节包装在print 中。这在情节现在出现的意义上起作用了,尽管是在一个新窗口中 - 这不是我想要的,这是为了让情节保留在 RStudio IDE 中。

【问题讨论】:

    标签: r ggplot2 rstudio


    【解决方案1】:

    我有同样的问题。事实证明,我有一些设备在默默地拍摄地块。

    dev.list()
    

    会给出一个打开的东西的列表。我有pdf 8 pdf 9

    dev.off(8)
    dev.off(9)
    

    关闭那些设备

    dev.list()
    

    然后说null device 1,然后我的绘图开始重新出现在视图窗格中。

    【讨论】:

      【解决方案2】:

      似乎错误在于 R/RStudio 而不是我的代码。

      在对不同论坛进行了一些探索之后,我尝试重新安装 R(我有 3.5.0 版),这对我有用。

      我只是下载了最新版本(无论如何我都有/拥有),然后关闭 RStudio 并安装 R(不删除我以前/当前版本)。

      然后我重新启动了 RStudio,它对我有用;绘图现在出现在 RStudio 的 Plots 窗格中。

      【讨论】:

        猜你喜欢
        • 2016-10-30
        • 2017-05-03
        • 2022-01-13
        • 2011-09-28
        • 2016-09-12
        • 1970-01-01
        • 2016-02-05
        • 1970-01-01
        • 2022-08-13
        相关资源
        最近更新 更多