Tutoriel Shiny
Partie 2: Widgets et outputs

Lise Vaudor

janvier 2021

Schema d’ensemble

Inputs

Pour permettre à l’utilisateur de rentrer des valeurs de son choix pour utiliser l’appli, on va utiliser des widgets (window gadgets) qui sont des composants de l’interface graphique.

Le widget doit être choisi en fonction de :

Vous pouvez avoir un aperçu de l’ensemble des widgets disponibles pour Shiny via la Shiny Widgets Gallery.

Inputs - Choix multiple

Pour choisir une ou plusieurs valeurs parmi plusieurs valeurs prédéfinies, plusieurs widgets sont disponibles:

Inputs - Numérique

Attention, bien qu’ils soient construits pour entrer des valeurs numériques, ils fournissent une valeur de type chaîne de caractère au serveur (ie “33” et non 33).

Inputs - Texte

Inputs - Divers

Parmi les autres widgets les plus utiles, on trouve:

Inputs - Triggers

Les triggers permettent à l’utilisateur de lancer certains processus. Ils sont particulièrement utiles pour lancer des processus un peu longs. J’y reviendrai un peu plus tard, quand j’aborderai le sujet de la réactivité

Outputs (1)

Dans les exemples précédents, on a vu différents exemples d’outputs possibles. Notamment, des outputs de type

Il est également possible de produire des outputs de type

Outputs (2)

Remarquez comme une fonction renderXxx() côté Server correspond à une fonction xxxOutput() côté UI.

Attention à ne pas vous tromper car si vous faites quelque chose du genre output$pouetpouet=renderTable({...}) côté Server et plotOutput("pouetpouet") côté UI vous obtiendrez vraisemblablement un affichage vide…

Attention à ne pas vous tromper car si vous faites quelque chose du genre

  • output$pouetpouet=renderTable({...}) côté Server et
  • plotOutput("pouetpouet") côté UI

vous obtiendrez vraisemblablement un affichage vide…

La dernière commande dans renderXXX({}) doit également correspondre au type de production souhaité (un texte pour renderText, un plot pour renderPlot, etc.)

Outputs particuliers : cartes

Les outputs présentés dans ce document correspondent aux types d’objets “de base”.

Les fonctions renderXXX() et XXXOutput() proviennent du package shiny lui-même.

Pour certains types d’outputs un peu particuliers, comme:

il est possible que les fonctions renderXXX() et XXXOutput() proviennent d’autres packages…

Ainsi le package tmap fournit:

et le package leaflet fournit: