2016-01-31 37 views
0

我創建了一個閃亮的應用程序與下拉選擇圖。我從我的工作目錄中提取數據,創建一些變量,然後在ggplot2中選擇這些變量以顯示我想要的圖形。但是,我想爲這些圖添加一些個性化定製。我正在努力尋找一種能夠在每個圖上以不同方式顯示信息的方式 - 例如,每個圖具有不同的x和y名稱。以下是我目前有:被動ggplot2圖 - 自定義每個圖

selection <- reactive({if(input$var=="Average Price by Country") { 
    return(mpc) 
} else if (input$var =="Average Price by Vintage") { 
    return(mpv) 
} else if (input$var == "Standard Deviation by Country") { 
    return(sdc) 
} 
}) 

output$plot <- renderPlot({ 

    function() { 
    if(selection ==mpc) { 
    selection() %>% 
    ggplot(aes(V1, V2, fill = V3)) + 
    geom_bar(stat = "identity", position="dodge")  
    }else { 
    selection() %>% 
    ggplot(aes(V1, V2, fill = V3)) + 
    geom_bar(stat = "identity", position="dodge")  
    } 
    } 
}) 

均價由國家,平均價格由葡萄酒和標準差的國家是在UI下拉所有選項。理想情況下,我希望能夠以不同的方式定製每個ggvis圖形。它目前的設置方式,只是用相同的ggvis函數顯示不同的數據。我試圖在outputplot中包裝選擇,但是當我運行應用程序時,它甚至沒有顯示圖形。

有沒有什麼辦法寫一個函數來做到這一點?謝謝。

回答

1

我看不到你的代碼的其餘部分,所以我不能測試它,但這是我會做什麼:

output$plot <- renderPlot({ 
    if(input$var == "Average Price by Country") { 
    selection <- mpc 
    plot_type = "mpc" 
    } else if (input$var =="Average Price by Vintage") { 
    selection <- mpv 
    plot_type = "mpv" 
    } else if (input$var == "Standard Deviation by Country") { 
    selection <- sdc 
    plot_type = "sdc" 
    } 
    if(plot_type == "mpv") { # CHANGE ME 
     selection %>% 
     ggplot(aes(V1, V2, fill = V3)) + 
     geom_bar(stat = "identity", position="dodge")  
    }else { 
     selection %>% 
     ggplot(aes(V1, V2, fill = V3)) + 
     geom_bar(stat = "identity", position="dodge")  
    } 
} 

最大的假設是mpcmpvsdc在工作區。 (即,load("yourworkspace.RData")之前shinyServer()

+0

謝謝,這解決了這個問題。我的數據集位於工作目錄中。你認爲什麼是最合適的「logic_that_shows_selection_equals_mpc?選擇== mpc不工作,我不得不使用if(相同的(選擇,mpc))。這是你怎麼接近它? –

+0

它取決於,如果mpc很大,相同的(選擇,mpc)可能需要很長時間,最好是設置一個字符變量並將其設置爲基於它,我會更新我的答案。 –