2017-01-18 18 views
1

sidebarPaneltabsetPanelを使用する液体グリッドシステム(つまり、fluidPageを使用)を使用してShinyアプリケーションを作成しました。私がサイドバーに入れた入力「コントロール」ウィジェットに加えて、特定のパネル上の私のメインパネルのグラフィックの下に一連の入力ウィジェットを追加したいと思います。fluidRowはShinyのmainPanelグラフィックの下に表示されません

tabPanelplotOutputコマンドの後に複数の列を含むfluidRowを含めるだけでした。

私のコードでエラーは発生しませんが、何らかの理由でが表示されないがメインパネルのグラフィックの下に表示されます。

これはちょっとできないのですか、何か間違っていますか?

注:このSO questionは、タブ内に複数のUI要素を含めるという私のアプローチが有効であることを示唆しています。この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、Plo​​t(s)、Group(s)などの下にウィジェットを表示します。しかし、私は小さなものをいくつか修正しなければなりませんでした。一つは、sliderInputに値を与える必要があります。別の場合、あなたはsidebarPanelmainPanelを押し込んでいる間違った括弧を持っています。

しかし、あなたのfluidRow自体は問題ありません。 UIの適切な場所に配置してください。

+0

おっとの質問を開くことを歓迎します。それはやるよ!時にはそれはちょうどその新鮮な目のペアを取る:p。ありがとう。 – theforestecologist

関連する問題