Cette application Shiny est utilisée dans le cadre de l'événement Human Talks Nantes pour introduire les concepts fondamentaux de Shiny. Elle présente un exemple interactif basé sur un dataset Pokémon, où les utilisateurs peuvent filtrer des données, afficher des tableaux, visualiser des graphiques, et comparer des statistiques de différents Pokémon à l'aide d'un radar plot.
L'application est structurée autour de plusieurs onglets, dont le premier est dédié à une présentation introductive et les suivants illustrent des fonctionnalités d'interaction avec les données Pokémon.
- Filtrage & Tableau : Permet de filtrer les Pokémon selon différents critères (type, légendaire, stats totales) et d'afficher un tableau dynamique des résultats filtrés.
- Visualisation : Affiche un graphique de la distribution des statistiques totales des Pokémon.
- Comparaison : Permet de sélectionner deux Pokémon pour comparer leurs statistiques à l'aide d'un radar plot.
Un module de présentation (slides) est intégré pour présenter l'introduction à Shiny avant d'entrer dans les fonctionnalités de l'application. Cette partie utilise la notion de modularisation au sein d'une application Shiny ( Ce point n'a pas été approfondi pour la présentation)
Cette partie contient les liens vers les différentes documentation R Shiny. Les Slides et les données utilisées pour la présentation sont téléchargeables via l'onglet "Slides et données présentation". De même le lien vers le repo github de cette présentation est donné.
L'interface est construite avec shinydashboard pour une navigation fluide entre les différentes sections.
- Dashboard Header : Le titre de l'application est Human Talks.
- Sidebar : Le menu latéral contient plusieurs sections, notamment l'onglet Présentation avec les slides et les autres sections pour l'exemple Pokémon.
- Dashboard Body : Le corps de l'application contient des onglets qui gèrent les interactions avec les données Pokémon.
Les onglets sont organisés comme suit :
- Présentation : Un module pour afficher les slides de présentation.
- Filtrage & Tableau : Interface permettant de filtrer les Pokémon et afficher un tableau des résultats.
- Visualisation : Graphique de la distribution des statistiques des Pokémon.
- Comparaison : Comparaison de deux Pokémon à l'aide d'un radar plot.
La partie server gère les différentes interactions des utilisateurs avec les données. Voici les principales fonctionnalités :
- Filtrage des données : En fonction des sélections faites par l'utilisateur (type, statut légendaire, stats totales), les données sont filtrées.
- Tableau dynamique : Affiche les Pokémon filtrés sous forme de tableau interactif avec pagination et possibilité de défiler horizontalement.
- Graphique de distribution : Un histogramme affichant la répartition des statistiques totales des Pokémon.
- Radar Plot : Permet de comparer les statistiques de deux Pokémon sélectionnés.
Avant de lancer l'application, vous devez avoir installé les packages nécessaires.
Voici les packages nécessaires à l'exécution de l'application :
install.packages(c("shiny", "shinydashboard", "tidyverse", "bslib", "DT", "shinyjs", "fmsb", "scales"))
- Pokemon.csv : Le fichier CSV contenant les données des Pokémon. Ce fichier doit être situé dans le même répertoire que votre application.
- R/slide_module.R : Le module des slides qui permet d'afficher une présentation.
Une fois les dépendances installées et les fichiers nécessaires en place, lancez l'application avec le code suivant :
shiny::runApp()
Cet onglet utilise un module de slides pour présenter l'introduction à l'utilisation de Shiny. Le module est source dans le fichier R/slide_module.R
.
Dans cet onglet, l'utilisateur peut filtrer les Pokémon par type, statut légendaire et plage de statistiques totales. Le tableau est affiché à l'aide du package DT, permettant une visualisation interactive des résultats.
Ce sous-onglet affiche un histogramme représentant la distribution des statistiques totales des Pokémon filtrés.
Cet onglet permet à l'utilisateur de sélectionner deux Pokémon pour comparer leurs statistiques via un graphique radar. Les statistiques de chaque Pokémon sont normalisées pour être comparées sur la même échelle.
Cette application est utilisée dans le cadre du talk "Introduction à Shiny" lors de l'événement Human Talks. L'objectif est de familiariser les participants avec les bases de Shiny en créant une application simple mais interactive.
- Lucie Camanez : Développeur principal
- Bluesky ladatatata.bsky.social
Merci aux Human Talks Nantes pour leur accueil