Блестящий интерфейс отображает только один сюжет - PullRequest
0 голосов
/ 13 июня 2019

Я создал интерактивный сюжет, используя глянцевый и ggplot2. Я использую радио кнопки, где у меня есть 4 графика, и, выбрав одну из двух возможных кнопок для каждой из 2 кнопок радио, печатается график (возраст / пол).

ui <- fluidPage(
            titlePanel(title=h3("Life", align="center")),
            sidebarPanel( 
            radioButtons('gender', "Choose Gender:", choices = c('Males' = 'm', 'Females' ='f')),
            radioButtons('age', "Choose Age:", choices = c('At birth' = 'b', 'At Age 65' ='s'))),

            mainPanel(plotOutput("plot2"))
            )

. сервер <- функция (вход, выход) {</p>

output$plot2<-renderPlot({
    if (input$gender == 'f' & input$age == 'b') { 
        ggplot(df, aes(x = year, y = value, group = variable, color=variable)) +  ...

Для печати 2-го:

if (input$gender == 'm' & input$age == 'b') 
    { 
        ggplot() ...}

Для печати 3-го сюжета:

if (input$gender == 'm' & input$age == 's') 
    { ggplot ...}

Для печати 4 сюжета:

if (input$gender == 'm' & input$age == 's') 
    {etc.... }

У меня есть 4 кадра данных для каждого графика, графики без блестящих изображений работают нормально.

Моя проблема в том, что блестящий пользовательский интерфейс показывает только последний график, для остальных 3 вывод пуст?

Что я делаю не так ???

1 Ответ

1 голос
/ 13 июня 2019

Вы должны использовать else if:

output$plot2 <- renderPlot({
    if (input$gender == 'f' && input$age == 'b') { 
        ggplot(df, aes(x = year, y = value, group = variable, color=variable)) + ...
    } else if (input$gender == 'm' && input$age == 'b') { 
        ggplot() ...
    } else if ....
})

В противном случае ваше выражение возвращает только последний if, и это NULL, если условие не выполнено.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...