Améliorer l'interactivité pour les non-codeurs avec ShinyLive
L'hébergement d'ensembles de données et de fonctions d'assistance sur les pages GitHub est un excellent moyen de rendre les ressources accessibles. Pour les développeurs travaillant avec R, l’intégration de l’interactivité peut encore améliorer l’engagement des utilisateurs, en particulier pour les non-codeurs qui explorent vos données. ShinyLive offre une solution pratique pour intégrer une telle interactivité directement dans un site Web pkgdown.
Malgré la disponibilité de ressources sur l'intégration des applications Shiny dans les packages R ou les pages GitHub, il subsiste un manque de connaissances sur la combinaison efficace de ShinyLive avec les sites Web pkgdown. En tant que personne gérant de petits packages R avec des ensembles de données et des fonctions d'assistance, votre objectif est probablement de rendre l'exploration des données intuitive et conviviale. ShinyLive peut combler cette lacune.
L'intégration d'une application Shiny dans la section « Articles » de votre site Web pkgdown offre un moyen simplifié de fournir des fonctionnalités interactives sans surcharger la documentation du package R. Cette méthode garantit que même les utilisateurs peu familiers avec le codage peuvent facilement sous-ensembler et visualiser les données. C’est gagnant-gagnant pour les développeurs et les utilisateurs ! 🚀
Par exemple, imaginez un ensemble de données sur la santé dans lequel les utilisateurs peuvent filtrer les données démographiques par données démographiques. En utilisant ShinyLive, vous pouvez créer et déployer cette application sur les pages GitHub, rendant les données accessibles de manière dynamique. Cet article explique comment y parvenir étape par étape avec la configuration de votre application existante. 🛠️
Commande | Exemple d'utilisation |
---|---|
selectInput | Utilisé dans Shiny UI pour créer un menu déroulant pour sélectionner les options. Exemple : selectInput("var", "Select Variable :", choix = noms (mtcars)). Cela permet une saisie utilisateur dynamique pour la sélection de variables. |
sliderInput | Crée un widget de saisie de curseur dans Shiny pour permettre aux utilisateurs de sélectionner une plage de valeurs. Exemple : sliderInput("range", "Filter Range:", min = 0, max = 100, value = c(25, 75)). Indispensable pour le filtrage interactif. |
renderPlot | Utilisé dans la logique du serveur Shiny pour générer des tracés de manière dynamique en fonction des entrées de l'utilisateur. Exemple : sortie$plot |
filter | A function from dplyr to subset data based on conditions. Example: filter(get(input$var) >Une fonction de dplyr pour sous-ensemble de données en fonction des conditions. Exemple : filter(get(input$var) >= input$range[1]). Utile pour appliquer des filtres définis par l'utilisateur aux ensembles de données. |
aes_string | Utilisé dans ggplot2 pour définir par programme l'esthétique comme les axes x et y. Exemple : aes_string(x = input$var). Idéal pour la génération de tracés dynamiques. |
geom_histogram | Une couche ggplot2 pour créer des visualisations d'histogrammes. Exemple : geom_histogram(bins = 10, fill = "blue", color = "white"). Utile pour visualiser les distributions dans une application. |
uses | Syntaxe YAML dans GitHub Actions pour spécifier des actions réutilisables. Exemple : utilise : actions/checkout@v3. Assure une intégration transparente avec des flux de travail prédéfinis. |
shinylive.js | Une bibliothèque JavaScript pour exécuter des applications Shiny dans un navigateur. Exemple : . Permet d'intégrer des applications Shiny dans des pages HTML statiques. |
Shinylive.App | Initialise et exécute une application ShinyLive dans un conteneur HTML spécifié. Exemple : const app = new Shinylive.App("#shiny-app");. Fournit des fonctionnalités d'application basées sur un navigateur. |
sliderInput | Crée une entrée de curseur pour la sélection de plage numérique. Exemple : sliderInput("range", "Filter Range:", min = 0, max = 100, value = c(25, 75)). Ajoute un filtrage de plage dynamique pour les utilisateurs. |
Création d'outils interactifs d'exploration de données avec Shinylive
Le premier script, construit à l'aide de R et Shiny, se concentre sur la création d'une interface dynamique permettant aux utilisateurs d'explorer des ensembles de données de manière interactive. Le sélectionnerEntrée La commande est essentielle pour permettre aux utilisateurs de choisir dynamiquement des variables dans un menu déroulant, en adaptant l'application à leurs besoins. Associé à sliderEntrée, les utilisateurs peuvent affiner davantage leur exploration en sélectionnant une plage spécifique de valeurs pour filtrer les données. Par exemple, dans un ensemble de données comme voitures mt, les utilisateurs peuvent sélectionner « mpg » comme variable et utiliser le curseur pour isoler les voitures dont le kilométrage est compris entre 20 et 30. Cette combinaison garantit une interface conviviale et intuitive. 🚀
La logique côté serveur complète l'interface utilisateur en générant des sorties réactives basées sur les entrées de l'utilisateur. Ici, le renduPlot La fonction est cruciale : elle traite l'ensemble de données filtré et génère des visualisations dynamiques à la volée. L’intégration de dplyr filtre La fonction permet un sous-ensemble transparent de l'ensemble de données, tandis que celui de ggplot2 géom_histogramme garantit des intrigues visuellement attrayantes et informatives. Imaginez un ensemble de données sur la santé dans lequel un utilisateur pourrait filtrer les tranches d'âge et voir instantanément la distribution des mesures de santé : ce script rend une telle interactivité possible avec un minimum d'effort pour les développeurs.
Le deuxième script se concentre sur l'automatisation du déploiement à l'aide des actions GitHub. Ceci est particulièrement important pour maintenir et mettre à jour efficacement les sites Web pkgdown. En utilisant un déployer-app.yaml fichier, vous pouvez automatiser le processus de diffusion des mises à jour et de déploiement de l'application ShinyLive. Des commandes clés comme actions/checkout@v3 assurez-vous que le dernier code du référentiel est utilisé, tandis que la configuration spécifique à Shinylive s'intègre de manière transparente dans le flux de travail. Par exemple, imaginez mettre à jour votre application avec de nouveaux filtres ou fonctionnalités : cette automatisation garantit que les modifications sont immédiatement reflétées en ligne, ce qui permet de gagner du temps et de réduire les erreurs manuelles. ⚙️
La troisième solution consiste à envelopper l'application Shiny dans un fichier HTML statique. En utilisant brillantlive.js, les développeurs peuvent intégrer l'application directement dans leur site Web pkgdown, évitant ainsi le besoin d'un serveur R actif. Cette méthode rend l'application accessible aux utilisateurs sans R installé, améliorant ainsi l'accessibilité. Par exemple, un enseignant pourrait partager une application interactive sur les données démographiques avec les élèves, qui pourraient l’explorer directement depuis leur navigateur. Cette solution est particulièrement intéressante pour les non-codeurs, car elle transforme des ensembles de données complexes en une expérience engageante et éducative. 🌐
Intégration d'une application Shiny dans un site Web pkgdown à l'aide de Shinylive
Solution 1 : R avec Shinylive pour l'intégration frontend et backend
# app.R
# Load necessary libraries
library(shiny)
library(dplyr)
library(ggplot2)
# UI definition
ui <- fluidPage(
titlePanel("Interactive Data Viewer"),
sidebarLayout(
sidebarPanel(
selectInput("var", "Select Variable:",
choices = names(mtcars)),
sliderInput("range", "Filter Range:",
min = 0, max = 100, value = c(25, 75))
),
mainPanel(plotOutput("plot"))
)
)
# Server logic
server <- function(input, output) {
output$plot <- renderPlot({
data <- mtcars %>%
filter(get(input$var) >= input$range[1],
get(input$var) <= input$range[2])
ggplot(data, aes_string(x = input$var)) +
geom_histogram(bins = 10, fill = "blue", color = "white")
})
}
# Run the app
shinyApp(ui, server)
Déployer Shinylive à l'aide des actions GitHub
Solution 2 : automatisation du déploiement avec GitHub Actions et Shinylive
# deploy-app.yaml
# Workflow configuration
name: Deploy ShinyLive App
on:
push:
branches:
- main
jobs:
deploy:
runs-on: ubuntu-latest
steps:
- name: Checkout repository
uses: actions/checkout@v3
- name: Set up R
uses: r-lib/actions/setup-r@v2
- name: Install dependencies
run: |
Rscript -e "install.packages(c('shiny', 'shinylive'))"
- name: Deploy app
uses: posit-dev/r-shinylive@actions-v1
with:
app-dir: ./
Ajout d'un wrapper HTML statique pour l'application Shiny
Solution 3 : encapsuler l'application Shiny dans du HTML statique pour l'intégration de pkgdown
< !-- index.html -->
<!DOCTYPE html>
<html>
<head>
<title>Interactive Shiny App</title>
<script src="shinylive.js"></script>
</head>
<body>
<div id="shiny-app"></div>
<script>
const app = new Shinylive.App("#shiny-app");
app.run();
</script>
</body>
</html>
Améliorer l'accessibilité et les performances des sites Web pkgdown avec ShinyLive
Un puissant avantage de l’utilisation BrillantLive est sa capacité à permettre une interactivité autonome sans s'appuyer sur un serveur R actif. Cela le rend parfait pour héberger des applications sur des plates-formes statiques telles que les pages GitHub. Contrairement aux applications Shiny traditionnelles qui nécessitent une prise en charge continue du serveur, ShinyLive convertit votre application en un package JavaScript autonome. Cet ensemble peut être intégré directement à votre site Web pkgdown, permettant aux utilisateurs d'explorer vos ensembles de données de manière transparente depuis n'importe quel navigateur. Par exemple, si votre package R comprend un ensemble de données de mesures de la qualité de l'air, les utilisateurs peuvent filtrer et visualiser dynamiquement les données sans avoir besoin d'installer de logiciel supplémentaire. 🌍
Un autre avantage réside dans son adaptabilité pour non-codeurs. En incorporant des fonctionnalités telles que des listes déroulantes et des curseurs, vous créez un environnement dans lequel n'importe qui peut interagir avec vos données. Par exemple, un professionnel de la santé pourrait examiner des données démographiques en sélectionnant des groupes d’âge ou des régions sans avoir besoin d’écrire une seule ligne de code. La combinaison de ShinyLive et des pages GitHub garantit que ces fonctionnalités interactives sont facilement accessibles et intuitives, ce qui rend votre projet très percutant pour un public plus large. 🧩
De plus, ShinyLive améliore les performances de votre site Web pkgdown en optimisant les ressources nécessaires à l'exécution de l'application. Puisque toute la logique est compilée en JavaScript, les applications se chargent plus rapidement et offrent une interactivité plus fluide. Ceci est particulièrement utile pour présenter de grands ensembles de données, où le rendu des tracés ou l'application de filtres pourraient autrement introduire des retards. Le résultat est une expérience utilisateur de qualité professionnelle qui s’aligne sur les normes Web modernes et les attentes en matière d’accessibilité. 🚀
Questions fréquemment posées sur l'utilisation de ShinyLive sur les sites Web pkgdown
- Comment intégrer une application Shiny dans un site Web pkgdown ?
- Vous pouvez utiliser ShinyLive pour convertir votre application Shiny en un bundle JavaScript et l'intégrer dans le Articles section de votre site Web pkgdown.
- Est-il nécessaire d'avoir un serveur R live pour les applications ShinyLive ?
- Non, les applications ShinyLive sont autonomes et peuvent s'exécuter directement dans un navigateur sans avoir besoin d'un serveur R actif.
- Puis-je mettre à jour l'application automatiquement lorsque j'envoie des modifications à GitHub ?
- Oui, vous pouvez utiliser GitHub Actions pour automatiser le déploiement. Un flux de travail comme deploy-app.yaml peut gérer cela pour vous.
- Quels types d’interactions utilisateur puis-je inclure ?
- Vous pouvez ajouter des fonctionnalités telles que selectInput pour les listes déroulantes et sliderInput pour les plages numériques afin de rendre votre application hautement interactive.
- ShinyLive est-il adapté aux non-codeurs ?
- Absolument! ShinyLive permet aux non-codeurs d'explorer les données via des widgets interactifs, ce qui en fait un excellent outil d'accessibilité.
L'exploration interactive des données simplifiée
ShinyLive fournit une solution conviviale pour intégrer l'interactivité dans les sites Web pkgdown. En transformant les applications Shiny en packages JavaScript prêts pour le navigateur, il ouvre les portes à une visualisation de données attrayante pour les utilisateurs de tous niveaux. Par exemple, un ensemble de données démographiques peut être exploré à l’aide de simples menus déroulants et curseurs. 🌟
La combinaison de ShinyLive avec GitHub Actions rationalise le processus de déploiement, garantissant que votre site Web reste à jour sans effort. Que vous soyez développeur ou professionnel des données, cette approche comble le fossé entre le contenu technique et l'expérience utilisateur intuitive, donnant vie à vos histoires de données dans un navigateur Web. 📊
Ressources et références
- Le contenu et les exemples ont été inspirés de la documentation et des didacticiels officiels de ShinyLive. Pour plus de détails, visitez le Présentation de ShinyLive .
- Les workflows de déploiement sont adaptés du Dépôt GitHub ShinyLive , qui comprend des exemples de workflows GitHub Actions et des conseils d'intégration.
- La stratégie d'intégration de pkgdown a été guidée par le Documentation de pkgdown , qui offre des informations sur la création et la gestion de sites Web de documentation pour les packages R.
- Une inspiration supplémentaire est venue de l'exploration de l'exemple réel sur Page GitHub de la population SC , qui présente l'application réelle de ShinyLive dans pkgdown.