Shiny Dashboard et widgets
Introduction au framework web Shiny et à la création de web app interactives pour présener des éléments d’analyse exploratoire.
Résumé
Shiny
- Shiny permet de créer des applications web
- Tout est réalisé en R et les visualisations se mettent à jour automatiquement
- Les graphiques de ggplot sont donc réutilisables
- Le package shinydashboard permet d’obtenir une interface plus raffinée
- Les graphiques ont un id au format output$mongraphe
- Les widgets ont un id au format input$monwidget
- Une collection de widgets avec des solutions pour tous les besoins
Application minimaliste shinydashboard
Liste des widgets et tuto shiny
Plotly
- Le package plotly permet de faire des graphiques interactifs
ggplotly()
converti facilement un graphique ggplot en graphique interactif
TD
Le sujet de cette semaine est simple : reproduisez l’application présentée sur ces screenshots.
L’application est en deux onglets, le premier contenant des informations sur le jeu de données starwars inclut dans le package dplyr. La boxe fixe (42) est la seule à être figée, toutes les autres sont calculées automatiquement à partir du jeu de données.
Le second onglet comprend un scatter plot interactif des variables height et mass du dataset et un bar chart de la répartition de la couleur des cheveux/peau/yeux des personnages.
Le sidebar menu sur la gauche permet de passer d’un onglet à l’autre, mais aussi de choisir combien d’éléments conserver dans le jeu de données (du premier au Xème élément) et de choisir quelle couleur doit être affichée dans le bar chart parmi hair_color, eye_color et skin_color.
Quelques conseils :
- Commencez par un dashboard vide
- Faites une version de la première page avec des valeurs figées, écrites à la main dans le code
- Améliorez cette première page pour que les valeurs soient calculées dynamiquement
- Ajoutez le premier widget qui permet de sélectionner le nombre d’élément à garder
- Faites la deuxième page
- Ajoutez, en dernier, le widget de menu déroulant pour sélectionner hair_color / eye_color / skin_color et mettre à jour le bar chart