2015-08-28 3 views
1

Я делаю небольшую программу в Shiny, бутон, разделенный на 5 частей (5 вкладок на боковой панели). Но, когда я показываю первые графики, а после того, как я показываю второй, второй находится под первым.Очистить mainPanel Area in Shiny, чтобы показать что-то еще

Я хотел бы удалить панель, чтобы правильно разместить новый график на странице. Вот что у меня на главной панели.

Если я нажму кнопку B1 (условный), появится первая маленькая программа. Но, если я хочу вывести cPlot1, он появится после gPlotsX.

conditionalPanel(
condition = "input.B1", 
column(6, 
plotOutput("gPlot1", click = "plot_clickA1"), 
verbatimTextOutput("infoA1"), 
plotOutput("gPlot3", click = "plot_clickA3"), 
verbatimTextOutput("infoA3")), 


column(6, 
plotOutput("gPlot2", click = "plot_clickA2"), 
verbatimTextOutput("infoA2"), 
plotOutput("gPlot4", click = "plot_clickA4"), 
verbatimTextOutput("infoA4"))), 

plotOutput("cPlot1",width = "100%", height = "800px"), 

Как я могу сделать, чтобы удалить первую часть, если я хочу отобразить вторую?

Большое спасибо!

ответ

0

Я не уверен, правильно ли я понял ваш вопрос. Вот как я представляю вашу проблему, и я надеюсь, что это помогает - если нет, то просьба указать минимальный воспроизводимый пример :)

library(shiny) 

ui <- shinyUI(fluidPage(
    sidebarLayout(
    sidebarPanel(
     tabsetPanel(
     tabPanel(title = "Panel 1", 
       br(), 
       h4("some content"), 
       checkboxInput(inputId = "B1", label = "Button 1", value = FALSE) 
     ), 
     tabPanel(title = "Panel 2", 
       br(), 
       h4("some content"), 
       checkboxInput(inputId = "B2", label = "Button 2", value = FALSE) 
     ) 
    ) 
    ), 
    mainPanel(
     conditionalPanel(condition = "input.B1", 
         h4("some content"), 
         h1("Button1 is active") 
    ), 
     conditionalPanel(condition = "input.B2", 
         h4("another content"), 
         h1("Button2 is active") 
    ) 
    ) 
) 
)) 

server <- shinyServer(function(input,output, session) { 

    observe({ 
    # if the first button is checked - uncheck the second button 
    if (input$B1) updateCheckboxInput(session, inputId = "B2", value = FALSE) 
    }) 

    observe({ 
    # if the second button is checked - uncheck the first button 
    if (input$B2) updateCheckboxInput(session, inputId = "B1", value = FALSE) 
    }) 

}) 

shinyApp(ui = ui, server = server) 
+0

Спасибо за вашу помощь, У меня есть ошибка: 'ОШИБКА: [on_request_read] сброс соединения по peer' То, что я хочу, просто очистит всю основную панель tu, поместив новые сюжеты На самом деле, если я запустил варианты добавления нового сюжета (график 2), он опускается ниже, но не выше. http://image.noelshack.com/fichiers/2015/35/1440797854-c1.png Как вы можете видеть, второй график находится под первым. (слева) Я просто хочу, чтобы график был один (справа). спасибо – SMAX