Создайте линейный график R / Shiny / ggplot2, используя 3 переменные - дату, состояние_территории и дискретную переменную - PullRequest
0 голосов
/ 28 марта 2020

мой фрейм данных - tableau_jh_df [показаны первые 4 строки]:

дата провинция_состояние_к_
1 2020-01-22 Алабама 0
2 2020-01-22 Аляска 0
3 2020-01-22 Аризона 0

Основываясь на выборе пользователем провинция_State из элемента управления Shiny, я хочу построить линейный график общего числа_файлов за неделю, используя ggplot2. То, что я получаю до сих пор, это все случаи, независимо от того, какая провинция выбрана. Вот мой код и график:

# ui
fluidRow(
        column(3,
               selectInput("state_terr", "Choose a State/Territory:",
                           list("Alabama", "Alaska", "Arizona" [,...etc]  
# server
output$plot <- renderPlot({
    min_date <- as.Date("2020-01-20")
    max_date <- NA
    ggplot(tableau_jh_df, aes(date, number_of_cases, col = input$state_terr,
                              group = 1)) +
    geom_line() +
    labs(x = "Date", y = "Number of Cases") +
    theme(axis.text.x = element_text(angle = 45),
          axis.text.y = element_text(angle = 90))  

Количество дел по дате

1 Ответ

1 голос
/ 28 марта 2020

Вы должны отфильтровать ваш набор данных в соответствии с выбранным штатом или провинцией. Используя filter из dplyr, попробуйте это:

ggplot(filter(tableau_jh_df, province_state == input$state_terr), 
       aes(date, number_of_cases, col = input$state_terr, group = 1)) +
    geom_line() +
    labs(x = "Date", y = "Number of Cases") +
    theme(axis.text.x = element_text(angle = 45),
          axis.text.y = element_text(angle = 90))

Кстати: col = input$state_terr не влияет на цвет линии, если это было вашим намерением.

...