CommencerCommencer gratuitement

Donner de la structure à votre application

Les mises en page dans Shiny servent à structurer votre application en plaçant les éléments aux emplacements souhaités.

Une mise en page avec barre latérale, créée avec la fonction sidebarLayout(), propose une structure de base en deux colonnes : une barre latérale plus étroite à gauche et un panneau principal plus large à droite.

La fonction de mise en page avec barre latérale prend deux arguments : sidebarPanel() et mainPanel(). Chacun de ces panneaux peut contenir un mélange quelconque d’éléments texte/HTML, de la même manière que vous pouvez mélanger ces éléments dans un fluidPage().

Cet exercice fait partie du cours

Études de cas : créer des applications web avec Shiny en R

Afficher le cours

Instructions

Votre objectif est d’ajouter une mise en page avec barre latérale à l’application existante, de sorte que les entrées soient à gauche et les résultats dans le panneau principal. Plus précisément, vous devez :

  • Définir l’UI de l’application Shiny.
  • Ajouter une mise en page avec barre latérale à la page.
  • Ajouter un panneau latéral à la mise en page et y placer les entrées et le texte.
  • Ajouter un panneau principal à la mise en page et y placer le graphique et le tableau.

Exercice interactif pratique

Essayez cet exercice en complétant cet exemple de code.

# Load the shiny package
library(shiny)

# Define UI for the application
ui <- ___(
  # Add a sidebar layout to the application
  ___(
    # Add a sidebar panel around the text and inputs
    ___(
      h4("Plot parameters"),
      textInput("title", "Plot title", "Car speed vs distance to stop"),
      numericInput("num", "Number of cars to show", 30, 1, nrow(cars)),
      sliderInput("size", "Point size", 1, 5, 2, 0.5)
    ),
    # Add a main panel around the plot and table
    ___(
      plotOutput("plot"),
      tableOutput("table")
    )
  )
)

# Define the server logic
server <- function(input, output) {
  output$plot <- renderPlot({
    plot(cars[1:input$num, ], main = input$title, cex = input$size)
  })
  output$table <- renderTable({
    cars[1:input$num, ]
  })
}

# Run the application
shinyApp(ui = ui, server = server)
Modifier et exécuter le code