2014-12-05 97 views
2

第一次和第一次使用Shiny和ggplot2,所以请忍受我。我无法让ggplot将输入$变量解释为group =选项的值。我在这SO post找到了一些指导,但无法完成它的工作。我在下面粘贴了我的代码的简化版本,这会产生“未找到输入”错误。任何想法如何解决?闪亮和ggplot - 使组的麻烦=反应

ui.r

library(markdown) 

shinyUI(navbarPage("Shiny: First App", 
     tabPanel("Annual Trends", 
       verticalLayout(
         titlePanel("Annual Subscriptions Data"), 

         selectInput("dim", 
          label = "Dimension of Interest", 
          choices = c("location", "package", 
             "section", "price.level", "no.seats"), 
          selected = "location"), 

         plotOutput("plot"), 
        ) 
       ) 
    ) 
) 

server.R

library(shiny) 
library(ggplot2) 

subscriptions = read.csv("data/subscriptions.csv") 

shinyServer(function(input, output, session) { 

output$plot <- renderPlot({ 
     ggplot(subscriptions, aes(x = season)) + 
     geom_freqpoly(aes(x = season, group=input$dim, colour=input$dim)) 
    }) 
}) 
+0

它看起来像'plotOutput(“plot”)''后有一个额外的逗号。如果在删除多余的逗号后它仍然不起作用,您应该发布一些示例数据,以便我们可以帮助您。 – shadow 2014-12-05 09:16:31

回答

2

尝试使用aes_string()代替aes(),使之正确评价input$dim

output$plot <- renderPlot({ 
    ggplot(subscriptions, aes(x = season)) + 
    geom_freqpoly(aes_string(x = "season", group=input$dim, colour=input$dim)) 
})