CommencerCommencer 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 essentiel pour organiser l’interface et la rendre plus facile à utiliser.

L’application comporte pour l’instant très peu d’éléments (un titre, deux entrées, une sortie de nuage de mots), elle reste donc gérable sans mise en page. Cependant, elle va s’étoffer dans les prochains exercices et une barre latérale sera bénéfique. Il est préférable d’ajouter une mise en page tôt dans votre application, 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 volumineuse et non structurée.

Comme c’est souvent le cas avec les applications Shiny et autres applications interactives, les entrées seront placées dans la petite barre latérale, tandis que la sortie principale (le nuage de mots) sera affichée dans le grand panneau principal.

Cet exercice fait partie du cours

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

Afficher le cours

Instructions

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é, en dehors de la structure de mise en page. Plus précisément :

  • Ajoutez une mise en page avec barre latérale à l’UI.
  • À l’intérieur de cette mise en page, définissez un panneau latéral pour accueillir les deux entrées.
  • Toujours dans cette mise en page, définissez un panneau principal qui contienne la sortie du nuage de mots (ligne 12).

Exercice interactif pratique

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

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