2014-12-06 48 views
0

所以我嘗試了閃亮,我有一個問題。閃亮:根據輸入從源文件繪製圖形

我想要的是一個selectinput是你可以選擇不同的選項,並得到一個特定的圖形。這些不同的圖形是已經在源文件中創建的ggplot2圖形。所以只需要調用圖表。不過,我似乎不知道如何做到這一點。這些圖是ggplot2圖,它們很好,它們加載完美,所以我認爲這不是問題。

我也希望有一個文本輸出取決於selectinput。

因此,這裏是我的服務器腳本:

shinyServer(
    function(input, output) { 
    output$map <- renderPlot({ 
     plot <- switch(input$activity, 
        "" = NULL, 
        "act1" = plot1, 
        "act2" = plot2, 
        "act3" = plot3, 
        "act4" = plot4, 
        "act5" = plot5, 
        "act6" = plot6) 
    plot 
    }), 
    output$text1 <- renderText({ 
    text <- switch(input$Activiteit, 
      "" = NULL, 
      "act1" = paste("blabla"), 
      "act2" = paste("blabla2"), 
      "act3" = paste("blabla3"), 
      "act4" = paste("blabla4"), 
      "act5" = paste("blabla5"), 
      "act6" = paste("blabla6") 
      ) 
    text 
    }) 

} 
) 

有一件事是我不能肯定的是被我必須加載源文件。我現在加載它在主文件中,你運行的應用程序。我也可以理解你必須將它加載到服務器文件中。

但這不是唯一的問題,因爲文本也沒有顯示在閃亮的輸出。所以我的代碼一定是錯的。 ui腳本提供正確的輸出,所以這不是問題。我希望你能幫助我。

回答

0

。你好,你不需要在server.R中的兩個輸出之間逗號,你不需要"" = NULL,switch。試試這個例子:

## ui.R 
shinyUI(fluidPage(
selectInput(inputId = "Activiteit", label = "", choices = c("", paste0("act", 1:6))), 
h2("Your text"), 
textOutput(outputId = "text1"), 
h2("Your graph"), 
plotOutput(outputId = "map") 
)) 

## server.R 
shinyServer(
function(input, output) { 
    output$map <- renderPlot({ 
    p <- switch(input$Activiteit, 
       "act1" = p1, 
       "act2" = p2, 
       "act3" = p3, 
       "act4" = p4, 
       "act5" = p5, 
       "act6" = p6) 
    print(p) 
    }) 
    # no comma here 
    output$text1 <- renderText({ 
    text <- switch(input$Activiteit, 
       "act1" = paste("blabla"), 
       "act2" = paste("blabla2"), 
       "act3" = paste("blabla3"), 
       "act4" = paste("blabla4"), 
       "act5" = paste("blabla5"), 
       "act6" = paste("blabla6") 
) 
    return(text) 
    }) 

    } 
) 

## global.R 
# you can source files here 
library(ggplot2) 
p1 <- qplot(1:10, rnorm(10), colour = runif(10)) 
p2 <- qplot(1:20, rnorm(20), colour = runif(20)) 
p3 <- qplot(1:30, rnorm(30), colour = runif(30)) 
p4 <- qplot(1:40, rnorm(40), colour = runif(40)) 
p5 <- qplot(1:50, rnorm(50), colour = runif(50)) 
p6 <- qplot(1:60, rnorm(60), colour = runif(60)) 

希望它有幫助。

+0

總是逗號的... – Marinka 2014-12-16 17:17:35