Reactive Shiny Plot不会显示任何情节。

时间:2018-05-18 22:42:39

标签: r shiny

我有一个数据集,其中包含超过30年的所有50个州的房屋价值。列包括State,Year,Value等。我正在尝试创建一个交互式Shiny应用程序,用户可以选择某些状态,这样它们就是图中唯一显示的状态。我已经成功创建了所有状态的图,其中Year位于x轴上,Value位于y轴上,由State着色,并且还成功地对数据集进行了子集,因此只有一个状态图。

我是Shiny的新手,除了输入复选框功能之外还有其他问题。有什么明显的东西我不见了吗?

    ui <- fluidPage(
       checkboxGroupInput(inputId = "state", label = "States", choices = levels(AllData2$STATE),
        plotOutput(outputId = "hist")))

    server <- function(input, output) {
         output$hist <- renderPlot({
      plot(data = subset(AllData2, AllData2 == input$state), mapping = aes(x = Date, y = HomeValue, 
     color = STATE) + geom_line(size=2, alpha=0.8) + 
     scale_y_continuous(breaks = seq(0, 1000000, 50000)) + 
     scale_x_continuous(breaks = seq(1975, 2020, 5)) +
     ylab("Value in Dollars") + xlab("Year"))

     })
   }

    shinyApp(ui = ui, server = server)

除了复选框选项外,我的Shiny App中没有输出。感谢您的任何帮助。

1 个答案:

答案 0 :(得分:1)

代码中只有语法错误。他们中的许多人:

  1. 您已将plotOutput()包含在复选框组中,请将其放在其外面。
  2. 使用ggplot()代替plot()
  3. 您已将所有内容都包含在plot()内如果您使用ggplot(),则语法为:ggplot(data=AllData,mapping=aes())+geom_line()+scale_y_continuous()+scale_x_continuous()+labs(x="This is X label",y="This is ylab",color="This is the color legend label")
  4. 修复这些问题后,您的代码将正常运行 如果您想要即时结果,只需复制粘贴:

    library(shiny)
    library(ggplot2)
    library(dplyr)
    ui <- fluidPage(
      column(12,checkboxGroupInput(inputId = "state", label = "States", choices = c(1,2,3,4,5))),
                         column(12,plotOutput(outputId = "hist")))
    
    server <- function(input, output) {
      output$hist <- renderPlot({
        ggplot(data = subset(AllData2, AllData2$STATE %in% input$state), mapping = aes(x = Date, y = HomeValue, 
                  color = STATE)) + geom_line(size=2, alpha=0.8) + 
               scale_y_continuous(breaks = seq(0, 1000000, 50000)) + 
               scale_x_continuous(breaks = seq(1975, 2020, 5)) +labs(x="Value in Dollars",y="Year")
    
      })
    }
    
    shinyApp(ui = ui, server = server)