2017-01-18 12 views
1

Я создал приложение «Блестящее», используя систему жидкой сетки (т. Е. Используя fluidPage), которая использует sidebarPanel10 и tabsetPanel. В дополнение к входным «управляющим» виджетам, которые я помещал в боковую панель, я также хотел бы добавить ряд входных виджета ниже графический объект в моей основной панели на определенной панели.fluidRow не отображается под графикой mainPanel в Shiny

Мой подход состоял в том, чтобы просто включить fluidRow с несколькими столбцами после команды plotOutput в первом tabPanel.

Мой код не вызывает ошибок, но почему-то ничего не отображается под графикой на моей главной панели.

Это просто невозможно, или я делаю что-то неправильно?

Примечание: этот SO question предполагает, что мой подход к включению нескольких элементов пользовательского интерфейса на вкладке действителен, и этот SO question предполагает, что несколько выходов могут быть добавлены в mainPanel (но как насчет входов?). Так что дает ???

Пример кода с таким же вопросом:

library(shiny) 

ui <- fluidPage(

    titlePanel(
    h1("NMS Comparing tool", style = "font-size: 15px") 
), 


    sidebarPanel(width = 3, 
      div(style = "font-size: 8px;", 
       sliderInput(inputId = "groups", 
          label = "No. of Groups", 
          value = 4, min = 2, max = 12) 
      ), 

      fluidRow(
      column(6,offset=0, 
        div(style = "height: 105px; padding: 0px 0px", 
         plotOutput(outputId = "scree") 
        ) 
      ), 

      column(6,offset=0, 
        div(style = "font-size: 8px;padding: 0px 10px;height: 105px", 
         checkboxGroupInput(inputId = "labels", 
              label = "Labels", 
              choices = c("SPEC","Plot-End","Plot-Start"), 
              selected = c("SPEC","Plot-End","Plot-Start") 
         )  
        ) 
      ) 
      ), 

      fluidRow(
      column(6,offset=0, 
        div(style = "font-size: 8px; padding: 0px 0px",  
         radioButtons(inputId = "data", 
            label = "Data", 
            choices = c("PSP Only","PSP + MAP"), 
            selected = "PSP + MAP") 
        )  
      ), 

      column(6,offset=0, 
        div(style = "font-size: 8px;padding: 0px 10px;", 
         radioButtons(inputId = "freq", 
            label = "Frequency", 
            choices = c(0.025,0.05), 
            selected = 0.05) 
        ) 
      ) 
      ), 

      fluidRow(
      column(6,offset=0, 
        div(style = "font-size: 8px; padding: 0px 0px; ",     
         radioButtons(inputId = "arrows", 
            label = "Vector Choice", 
            choices = c("Cumulative Change","All Samples","Hurricane"), 
            selected = "Cumulative Change") 
        ) 
      ), 

      column(6,offset=0, 
        div(style = "font-size: 8px;padding: 0px 10px",  
         selectInput(inputId = "size", 
            label = "Tree Size", 
            choices = c("All","Canopy","Subcanopy","Small"), 
            selected = "All"), 
         tags$style(type = "text/css", 
            "#size {height: 4px; }") 
        ) 
      ) 
      ), 

      fluidRow(
      div(style = "font-size: 8px;",     
       verbatimTextOutput("info") 
      )  
      ) 
      , 

      mainPanel(width = 9, 
        tabsetPanel(
         tabPanel(title = "NMS", 
           plotOutput(outputId = "nms", click = "plot_click"), 
           fluidRow(
            column(2,offset=0, 
             div(style = "font-size: 8px; padding: 0px 0px", 
              actionButton(inputId = "plot.singles", label = "Lookup") 
             ) 
           ), 
            column(2,offset=0, 
             div(style = "font-size: 8px; padding: 0px 0px",  
              textInput(inputId = "individ", label = "Plot(s)") 
             ) 
           ), 
            column(2,offset=0, 
             div(style = "font-size: 8px; padding: 0px 0px", 
              textInput(inputId = "group.choose", label = "Group(s)") 
             ) 
           ), 
            column(3,offset=0, 
             div(style = "font-size: 8px; padding: 0px 0px", 
              sliderInput(inputId = "lwidth.choose", label = "LineWidth",min = 1, max = 6) 
             ) 
           ) 
           ) 
         ), 
         tabPanel(title = "Silhouette", plotOutput(outputId = "silhouette")), 
         tabPanel(title = "Indicator Spp", dataTableOutput(outputId = "ind.spp")), 
         tabPanel(title = "Data", dataTableOutput(outputId = "nms.data.table")) 
        ) 
      ) 
) 
) 


server <- function(input, output) { 

output$scree <- renderPlot({ 

    par(mar = c(1.5,1.4,0.1,0.1), mgp = c(0.5,0.01,0), tcl = -0.1) 
    plot(runif(99),runif(99),cex.axis=0.5,cex.lab=0.5,cex=0.75) 

    },height = 95, width = 135) 

    output$nms <- renderPlot({ 

    plot(runif(99),runif(99)) 

    }) 

} 

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

Был ли ваш рабочий стол с силуэтом. Я получаю пустой сюжет, без кластеров, только текст – vipin8169

+0

@ vipin8169, к сожалению, я до сих пор так и не получил графики силуэта. Они всегда приходят мне в порядок. Я приветствую вас, чтобы задать вопрос об этом – theforestecologist

ответ

3

Конечно то, что вы пытаетесь сделать, это возможно. Когда я запускаю ваш пример кода, я действительно вижу виджеты под сюжетом (Lookup, Plot (s), Group (s) и т. Д.). Но сначала мне пришлось исправить несколько мелких вещей - во-первых, вам нужно дать значение sliderInput. С другой стороны, у вас есть неуместная скобка, которая заставляет mainPanel засунуть в ваш sidebarPanel.

Но у вас нет проблем с вашим fluidRow, как написано. Убедитесь, что вы положили его в нужное место в пользовательском интерфейсе.

+0

. Это будет сделано! Иногда это просто принимает свежие пары глаз: p. Благодарю. – theforestecologist

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

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