web-dev-qa-db-fra.com

Brillant avec plusieurs onglets et barre latérale différente dans chaque onglet

J'essaie d'avoir plusieurs onglets, chaque onglet avec sa propre barre latérale, j'ai besoin de selectInput dans le premier onglet et sliderInput dans le deuxième onglet.

Quelqu'un peut-il aider?

Mon code:

ui <- fluidPage(

    headerPanel("Terrorism in The World"),
            sidebarPanel(      
                    selectInput("Country", "Select Country", choices = sort(unique(mydat$Country)), selected = "Iraq")
                ,sliderInput("year", "Year:", min = 1968, max = 2009, value = 2009, sep='')
        ),
        mainPanel(

        tabsetPanel(
            tabPanel("Map",htmlOutput("Attacks")),
            tabPanel("plot",
                fluidRow(
                    column(8,  plotlyOutput("trendheatrPlot", height = "300px",width = 700)),
                    column(7, plotlyOutput("trendstakbarPlot", height = "300px",width = 700))   
                )
            )
        )
    )
)
8
Sazan Abdalrhman

J'ai créé un modèle d'interface utilisateur simple que vous pouvez utiliser en fonction de votre description. J'ai également changé la spécification de votre colonne de 8,7 à 7,5 car l'interface utilisateur brillante est basée sur un système à 12 grilles. Voici le code:

library(shiny)
library(plotly)

shinyApp(
  ui = fluidPage(
    tabsetPanel(
      tabPanel("Map", fluid = TRUE,
               sidebarLayout(
                 sidebarPanel(selectInput("Country", "Select Country", choices = "", selected = "")),
                 mainPanel(
                   htmlOutput("Attacks")
                 )
               )
      ),
      tabPanel("plot", fluid = TRUE,
               sidebarLayout(
                 sidebarPanel(sliderInput("year", "Year:", min = 1968, max = 2009, value = 2009, sep='')),
                 mainPanel(fluidRow(
                   column(7,  plotlyOutput("")),
                   column(5, plotlyOutput(""))   
                 )
                 )
               )
      )
    )
  ), 
  server = function(input, output) {

  }
)
27
dvarelas