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
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)