Почему мой график не отображается на панели «Графики» RStudio? - PullRequest
0 голосов
/ 26 июня 2018

Я написал несколько функций, которые подключаются к серверу, собирают некоторые данные и видоизменяют эти данные. Одна из функций также визуализирует данные.

Поскольку мне всегда нужно запускать все шесть функций - и поскольку я писал их по мере необходимости, я решил, что будет более эффективно объединить их в одну большую функцию (~ 400 строк, возможно, до ~ 350 вскоре после некоторой чистки) вместо того, чтобы запускать шесть отдельных функций независимо друг от друга.

Перед объединением функций, та, которая производила визуализацию, отлично работала в том, что она появилась в окне Plots в RStudio.

После объединения функций визуализация не отображается.

Я добавил строку, чтобы показать, был ли график успешно сгенерирован, и это всегда так; однако я больше не вижу вывод.

Вот код для диаграммы:

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, так как график не всегда нужен. Чтобы сгенерировать диаграмму, пользователь указывает при вызове функции TRUE или chart = TRUE и генерирует график (используя if/else); в противном случае это просто трата вычислительной мощности.

Я подумал, что, возможно, порядок происходящих процессов повлияет на вывод, поэтому я переместил график вниз в сценарий, и он все еще не отображается на панели Plots, несмотря на "Chart printed." показ сообщения.

Функция в целом выполняется отлично, и желаемый результат - именно то, что я хочу.

В любой момент на этапе выполнения ошибок нет, и все кадры данных, как и ожидалось, без ошибок.

Если я разделю функцию визуализации, она будет работать независимо, без проблем. Если я верну его обратно в функцию, он все равно будет успешно выполнен, но визуализация отсутствует.

Что может быть причиной этого?

ОБНОВЛЕНИЕ (6 ИЮНЯ 2018):

Кто-то предложил обернуть сюжет в print. Это сработало в том смысле, что график теперь появляется, хотя и в новом окне - это не то, чего я хочу, а то, чтобы график оставался в среде IDtu RStudio.

1 Ответ

0 голосов
/ 26 июня 2018

Кажется, что ошибка заключается в R / RStudio, а не в моем коде.

После некоторых исследований на разных форумах я попытался переустановить R (у меня версия 3.5.0), и это сработало для меня.

Я просто скачал последнюю версию (которая у меня есть / была в любом случае), затем закрыл RStudio и установил R (не удаляя мою предыдущую / текущую версию).

Затем я перезапустил RStudio, и он работал для меня; графики теперь отображаются на панели Plots в RStudio.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...