2016-09-08 3 views
1

Vor ein paar Wochen habe ich nach Reaktivität in R - Shiny gefragt, und ich habe es immer noch nicht geschafft, die Nuss zu knacken. Es macht mich wahnsinnig, ich habe 100er Artikel über Reaktivität gelesen, aber ich kann es einfach nicht funktionieren lassen!Shiny Reactive Input Value - Kein Diagramm gezeigt, kein Fehler

Das ist, was ich bisher habe:

ui.R:

column(width = 3, 
box(
    title = "Pick a metric", 
     status = "primary", 
     width = 12, 
     height = 200, 
     solidHeader = FALSE, 
     collapsible = FALSE, 
     selectInput("value", "Metric:", 
        c("Pages/Session" = "pageviewsPerSession", 
         "Avg. Session Duration" = "avgSessionDuration")) 
            ) ) 
    column(width = 9, 
           box(
           title = "Title", 
           status = "primary", 
           width = 12, 
           height = 950, 
           solidHeader = FALSE, 
           collapsible = FALSE, 
              plotlyOutput("Scatter1") 

server.R:

output$Scatter1 <- renderPlotly({ 

datasetInput <- reactive({ 
    switch(input$value, 
    "Pages/Session" = SourcesDetail$pageviewsPerSession, 
    "Avg. Session Duration" = SourcesDetail$avgSessionDuration) 
}) 

p <- plot_ly(SourcesDetail, x = datasetInput(), y = SourcesDetail$visits, text = paste("Source/Medium: ", SourcesDetail$sourceMedium), 
     mode = "markers", color = SourcesDetail$medium, opacity = SourcesDetail$sourceMedium, marker = list(size = 15)) 

}) 

Es gibt keine Fehlermeldung ist, gibt es einfach keine grafische Darstellung in meine Ausgabe.

Jede Hilfe würde geschätzt werden !!

+0

Obwohl ich es nicht testen, denke ich 'dataInput' haben sollte außerhalb von 'renderPlotly' deklariert. – user5029763

+0

Danke! Alles funktioniert jetzt :) – RSesom

Antwort

0

Sie weisen den Ausgang zu, geben aber nicht selbst aus. Entweder entfernen p <- oder setzen Sie einen einzigen p am Ende renderPlotly:

entweder

output$Scatter1 <- renderPlotly({ 

    datasetInput <- reactive({ 
    switch(input$value, 
      "Pages/Session" = SourcesDetail$pageviewsPerSession, 
      "Avg. Session Duration" = SourcesDetail$avgSessionDuration) 
    }) 

    plot_ly(SourcesDetail, x = datasetInput(), y = SourcesDetail$visits, text = paste("Source/Medium: ", SourcesDetail$sourceMedium), 
       mode = "markers", color = SourcesDetail$medium, opacity = SourcesDetail$sourceMedium, marker = list(size = 15)) 

}) 

oder

output$Scatter1 <- renderPlotly({ 

    datasetInput <- reactive({ 
    switch(input$value, 
      "Pages/Session" = SourcesDetail$pageviewsPerSession, 
      "Avg. Session Duration" = SourcesDetail$avgSessionDuration) 
    }) 

    p <- plot_ly(SourcesDetail, x = datasetInput(), y = SourcesDetail$visits, text = paste("Source/Medium: ", SourcesDetail$sourceMedium), 
       mode = "markers", color = SourcesDetail$medium, opacity = SourcesDetail$sourceMedium, marker = list(size = 15)) 
    p 
}) 
+0

Ich wusste, dass es etwas dummes kleines gewesen sein muss ... Vielen Dank Brian, ich habe es endlich bekommen !!! :) du hast meinen Tag gerettet – RSesom

Verwandte Themen