【问题标题】:Make R/Shiny/ggplot2 linegraph using 3 variables--date, state_territory, and discrete variable使用 3 个变量(日期、州领土和离散变量)制作 R/Shiny/ggplot2 折线图
【发布时间】:2020-07-09 06:02:58
【问题描述】:

我的数据框是 tableau_jh_df [前 4 行显示]:

日期省份_州 number_of_cases
1 2020-01-22 阿拉巴马州 0
2 2020-01-22 阿拉斯加 0
3 2020-01-22 亚利桑那州 0

基于用户从 Shiny 控件中选择的 Province_state,我想绘制一个折线图 使用 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))  

Number of Cases by Date

【问题讨论】:

    标签: r ggplot2 shiny linegraph


    【解决方案1】:

    您必须根据所选的州或省过滤数据集。使用来自dplyrfilter 试试这个:

    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 对线条的颜色没有影响,如果这是您的意图。

    【讨论】:

      猜你喜欢
      • 2018-04-19
      • 2021-09-23
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多