geom_line не показывает линию - PullRequest
0 голосов
/ 08 октября 2018

Я пытаюсь построить линию, используя geom_line из пакета ggplot.Эта строка должна быть интерактивной и зависит от выбранного состояния и макропеременной в течение выбранного временного ряда.Хотя большинство из них, кажется, работает нормально, я не могу заставить geom_line () что-либо строить.

Я попытался сгруппировать данные, а также использовать функцию as.numeric () для переменной 'year', но, похоже, ничего не работает.

Спасибо заранее!

Сервер:

server <- function(input, output){


  output$plot1 <- renderPlot({

 ggplot(data = filter(c1, state == input$state1), 
        aes_string(x = as.numeric("year"), y = input$macroVar, group = 1)) +
   geom_line() +
   scale_x_continuous(limits = input$years) +
   labs(title = paste(col_alias(input$state1)),
        x = paste("Year"),
        y = paste(col_alias2(input$macroVar))) +
        theme_bw()})
  output$plot2 <- renderPlot({

ggplot(data = filter(c1, state == input$state2),  
       aes_string(x = as.numeric("year"), y = input$macroVar, group = 1)) +
  geom_line() +
  scale_x_continuous(limits = input$years) +
  labs(title = paste(col_alias(input$state2)),
       x = paste("Year"),
       y = paste(col_alias2(input$macroVar))) +
      theme_bw() })  
}   

shinyApp(ui = ui, server = server)

1 Ответ

0 голосов
/ 08 октября 2018

Вы не можете смешивать строковые и нестроковые вызовы в aes_string.Вы делаете это с as.numeric("year"), смешивая as.numeric() функцию с именем столбца строки.Посмотрите на этот воспроизводимый пример:

# does not work
ggplot(mtcars, aes_string('mpg', as.factor('cyl'))) +
  geom_point()

# works
ggplot(mtcars, aes_string('mpg', 'as.factor(cyl)')) +
  geom_point()

Итак, вы можете изменить код на 'as.numeric(year)' в качестве быстрого решения.Мне это тоже не очень нравится, aes_string становится уродливым, когда вы начинаете помещать команды в кавычки.Вместо этого я бы предложил (а) решить проблему в восходящем направлении путем преобразования вашего столбца year в числовой перед построением или (б) обновить ваш код до современных методов с использованием.См. Раздел Квазиквотация на странице справки ?aes, с примерами внизу страницы справки и дополнительными сведениями в связанной виньетке dplyr.

Если это не решит вашу проблемупроблема или вам нужна дополнительная помощь, сделайте воспроизводимый пример и включите его в свой вопрос.

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