CommencezCommencez gratuitement

Ajouter de la structure à votre application

Les mises en page dans Shiny servent à structurer votre application en plaçant des éléments à des emplacements précis.

Une mise en page avec barre latérale, créée avec la fonction sidebarLayout(), offre une structure de base à 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 n'importe quel mélange d'éléments texte/HTML, de façon similaire à la manière dont vous pouvez combiner ces éléments à l'intérieur d'un fluidPage().

Cette activité fait partie du cours

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

Voir le cours

Instructions de l’exercice

Votre tâche consiste à ajouter une mise en page avec barre latérale à l'application existante, de sorte que les entrées se trouvent à gauche et les sorties dans le panneau principal. Plus précisément, vous devez :

  • Définir l'interface utilisateur (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 ce code d’exemple.

# 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