2016-01-31 10 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")  
    } 
    } 
}) 

Средняя цена по стране, средняя цена по винтажной и стандартное отклонение по странам все варианты в выпадающем списке в пользовательском интерфейсе. В идеале, я хотел бы иметь возможность настраивать каждый график ggvis по-разному. Способ, которым он в настоящее время настроен, просто отображает разные данные с той же функцией ggvis. Я попытался обернуть выделение в выходной строке, но это даже не отображало график при запуске приложения.

Есть ли способ написать функцию для этого? Спасибо.

ответ

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")  
    } 
} 

Большое предположение в том, что mpc, mpv и sdc в рабочее пространство. (т.е. load("yourworkspace.RData") до shinyServer())

+0

Спасибо, это решает проблему. Мои наборы данных находились в рабочем каталоге. Как вы считаете, наиболее подходящий «logic_that_shows_selection_equals_mpc? Selection == mpc не работал. Мне пришлось использовать if (same (selection, mpc)). Это так, как вы бы тоже приблизились к нему? –

+0

Это зависит, если mpc большой, идентичный (выбор, mpc) может занять много времени. Возможно, лучше установить переменную символа и отложить ее. Я обновлю свой ответ. –

 Смежные вопросы

  • Нет связанных вопросов^_^