2016-01-31 22 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)可能需要很长时间,最好是设置一个字符变量并将其设置为基于它,我会更新我的答案。 –