CommencezCommencez gratuitement

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

Voir le cours

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)
Modifier et exécuter le code