Ajouter une mise en page
Comme vous l'avez vu dans les chapitres précédents, utiliser une mise en page dans une application Shiny est important pour organiser l'interface et en faciliter l'utilisation.
L'application comporte actuellement très peu d'éléments (un titre, deux champs de saisie, une sortie de nuage de mots), donc elle reste gérable sans mise en page. Cependant, l'application va prendre de l'ampleur dans les prochains exercices et une mise en page avec barre latérale sera avantageuse. Il est préférable d'ajouter la mise en page tôt, car intégrer de nouveaux éléments d'interface Shiny dans une structure existante est plus simple que de réorganiser plus tard une application plus grosse et non structurée.
Comme c'est souvent le cas avec les applis Shiny et autres applications interactives, les champs de saisie seront conservés dans la barre latérale, plus petite, tandis que la sortie principale (le nuage de mots) sera dans le panneau principal, plus grand.
Cette activité fait partie du cours
Études de cas : créer des applications Web avec Shiny en R
Instructions de l’exercice
Votre prochaine tâche consiste à ajouter une mise en page avec barre latérale à l'application Shiny actuelle. Aucun nouvel élément d'interface ne doit être ajouté, à part la structure de la mise en page. Plus précisément :
- Ajoutez une mise en page avec barre latérale à l'interface (UI).
- À l'intérieur de cette mise en page, définissez un panneau latéral pour contenir les deux champs de saisie.
- Toujours à l'intérieur de cette mise en page, définissez un panneau principal qui contient la sortie du nuage de mots (ligne 12).
Exercice interactif pratique
Essayez cet exercice en complétant ce code d’exemple.
ui <- fluidPage(
h1("Word Cloud"),
# Add a sidebar layout to the UI
___(
# Define a sidebar panel around the inputs
___(
numericInput("num", "Maximum number of words",
value = 100, min = 5),
colourInput("col", "Background color", value = "white")
),
# Define a main panel around the output
___(
wordcloud2Output("cloud")
)
)
)
server <- function(input, output) {
output$cloud <- renderWordcloud2({
create_wordcloud(artofwar,
num_words = input$num, background = input$col)
})
}
shinyApp(ui = ui, server = server)