2017-02-21 4 views
0

В целом, моя цель состоит в том, чтобы включить набор элементов пользовательского интерфейса в серый квадрат. Это чисто эстетическая вещь, и я использовал sidebarPanel(), чтобы попытаться ее выполнить.sidebarPanel не изменяет размер с помощью plotOutput

У меня возникла проблема с расположением моего пользовательского интерфейса в shiny при использовании sidebarPanel() в пределах mainPanel. Похоже, что sidebarPanel() изменяет расстояние между графиками и другими элементами пользовательского интерфейса на странице. Я включил воспроизводимый пример ниже:

library(shiny) 
library(ggplot2) 

server <- function(input, output, session) { 
    ###Outputting data exploration graph 
    output$graphMain <- renderPlot({ 
    ggplot(data=mtcars) + geom_histogram(aes(x=hp)) 
    }) 
} 

ui <- pageWithSidebar(
    headerPanel = NULL,sidebarPanel = NULL, 
    mainPanel = mainPanel(
    tabsetPanel(
     type = "pills", 
     tabPanel("My Panel", 
       sidebarPanel(width=12 ####Problematic sidebarPanel 
          , checkboxInput(inputId="checkbox1",label="Check box 1") 
       ), 
       plotOutput("graphMain", width = "95%") 
       ,checkboxInput(inputId="checkbox2",label="Check Box 2") 
    ) 
    ) 
) 
) 

shinyApp(ui = ui, server = server, options = list(launch.browser = T)) 

Ниже показана проблема выделена красным кружком: enter image description here

я выкопал немного дальше в этом и заметил, что этот вопрос, как представляется, ограничивается перекрывается plotOutput(). Например, я попытался заменить мой на dataTableOutput(), и проблема исчезла.

Мой вопрос: Есть ли быстрое решение? Я знаю, что могу исправить это, добавив в группу br(), но я хочу этого избежать. Кроме того, если есть лучший способ поместить набор входов в серый квадрат, пожалуйста, дайте мне знать!

ответ

1

Будет ли эта работа для вас:

server <- function(input, output, session) { 
    ###Outputting data exploration graph 
    output$graphMain <- renderPlot({ 
    ggplot(data=mtcars) + geom_histogram(aes(x=hp)) 
    }) 
} 

ui <- pageWithSidebar(
    headerPanel = NULL,sidebarPanel = NULL, 
    mainPanel = mainPanel(
    tabsetPanel(
     type = "pills", 
     tabPanel("My Panel", 
       sidebarPanel(width=12 ####Problematic sidebarPanel 
          , checkboxInput(inputId="checkbox1",label="Check box 1") 
       ), 
       fluidRow(verticalLayout(plotOutput("graphMain", width = "95%") 
       ,checkboxInput(inputId="checkbox2",label="Check Box 2")))) 
    ) 
    ) 
) 
) 

shinyApp(ui = ui, server = server, options = list(launch.browser = T)) 
+0

Отлично, отлично работает! –

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