Integrace aplikací ShinyLive do webu pkgdown na stránkách GitHub

Integrace aplikací ShinyLive do webu pkgdown na stránkách GitHub
Integrace aplikací ShinyLive do webu pkgdown na stránkách GitHub

Zlepšení interaktivity pro nekodéry pomocí ShinyLive

Hostování datových sad a pomocných funkcí na stránkách GitHub je vynikající způsob, jak zpřístupnit zdroje. Vývojářům pracujícím s R může integrace interaktivity dále zlepšit zapojení uživatelů, zejména pro nekodéry, kteří zkoumají vaše data. ShinyLive nabízí praktické řešení pro vložení takové interaktivity přímo do webové stránky pkgdown.

Navzdory dostupnosti zdrojů pro začlenění aplikací Shiny do balíčků R nebo stránek GitHub stále existuje mezera ve znalostech o efektivním kombinování ShinyLive s weby pkgdown. Jako někdo, kdo udržuje malé balíčky R s datovými sadami a pomocnými funkcemi, pravděpodobně usilujete o to, aby průzkum dat byl intuitivní a uživatelsky přívětivý. ShinyLive může překlenout tuto mezeru.

Začlenění aplikace Shiny do sekce „Články“ vašeho webu pkgdown nabízí efektivní způsob poskytování interaktivních funkcí bez přetěžování dokumentace balíčku R. Tato metoda zajišťuje, že i uživatelé, kteří nejsou obeznámeni s kódováním, mohou snadno podmnožit a vizualizovat data. Je to výhra pro vývojáře i uživatele! 🚀

Představte si například soubor údajů o zdraví, kde mohou uživatelé filtrovat údaje o populaci podle demografických údajů. Pomocí ShinyLive můžete tuto aplikaci sestavit a nasadit na stránkách GitHub, čímž zpřístupníte data dynamickým způsobem. Tento článek popisuje, jak toho dosáhnout krok za krokem pomocí stávajícího nastavení aplikace. 🛠️

Příkaz Příklad použití
selectInput Používá se v uživatelském rozhraní Shiny k vytvoření rozevírací nabídky pro výběr možností. Příklad: selectInput("var", "Select Variable:", choices = names(mtcars)). To umožňuje dynamický uživatelský vstup pro výběr proměnných.
sliderInput Vytvoří vstupní widget posuvníku v Shiny, který uživatelům umožní vybrat rozsah hodnot. Příklad: sliderInput("rozsah", "Rozsah filtru:", min = 0, max = 100, hodnota = c(25, 75)). Nezbytné pro interaktivní filtrování.
renderPlot Používá se v logice serveru Shiny k dynamickému generování grafů na základě vstupu uživatele. Příklad: output$plot
filter A function from dplyr to subset data based on conditions. Example: filter(get(input$var) >Funkce z dplyr na data podmnožiny na základě podmínek. Příklad: filter(get(input$var) >= input$range[1]). Užitečné pro použití uživatelsky definovaných filtrů na datové sady.
aes_string Používá se v ggplot2 pro programové nastavení estetiky, jako jsou osy x a y. Příklad: aes_string(x = input$var). Ideální pro dynamické generování zápletek.
geom_histogram Vrstva ggplot2 pro vytváření vizualizací histogramů. Příklad: geom_histogram(bins = 10, výplň = "modrá", barva = "bílá"). Užitečné pro vizualizaci distribucí v aplikaci.
uses Syntaxe YAML v akcích GitHubu k určení opakovaně použitelných akcí. Příklad: používá: actions/checkout@v3. Zajišťuje bezproblémovou integraci s předdefinovanými pracovními postupy.
shinylive.js Knihovna JavaScript pro spouštění aplikací Shiny v prohlížeči. Příklad: . Umožňuje vkládání aplikací Shiny do statických stránek HTML.
Shinylive.App Inicializuje a spouští aplikaci ShinyLive v určeném HTML kontejneru. Příklad: const app = new Shinylive.App("#shiny-app");. Poskytuje funkce aplikace založené na prohlížeči.
sliderInput Vytvoří posuvník pro výběr číselného rozsahu. Příklad: sliderInput("rozsah", "Rozsah filtru:", min = 0, max = 100, hodnota = c(25, 75)). Přidává filtrování dynamického rozsahu pro uživatele.

Vytváření interaktivních nástrojů pro průzkum dat pomocí Shinylive

První skript, vytvořený pomocí R a Shiny, se zaměřuje na vytvoření dynamického rozhraní, které uživatelům umožňuje interaktivně prozkoumávat datové sady. The vyberte vstup je nezbytný k tomu, aby uživatelé mohli dynamicky vybírat proměnné z rozbalovací nabídky a přizpůsobovat aplikaci jejich potřebám. Spárováno s posuvný vstup, mohou uživatelé dále upřesnit svůj průzkum výběrem konkrétního rozsahu hodnot pro filtrování dat. Například v datové sadě jako mtcars, uživatelé mohou vybrat „mpg“ jako proměnnou a pomocí posuvníku izolovat vozy s najetými kilometry mezi 20 a 30. Tato kombinace zajišťuje uživatelsky přívětivé a intuitivní rozhraní. 🚀

Logika na straně serveru doplňuje uživatelské rozhraní generováním reaktivních výstupů na základě uživatelských vstupů. Tady, renderPlot funkce je klíčová – zpracovává filtrovanou datovou sadu a generuje dynamické vizualizace za běhu. Integrace dplyr's filtr funkce umožňuje bezproblémové podmnožiny datové sady, zatímco ggplot2's geom_histogram zajišťuje vizuálně přitažlivé a informativní zápletky. Představte si zdravotní datovou sadu, kde by uživatel mohl filtrovat věková rozmezí a okamžitě vidět distribuci zdravotních metrik – tento skript umožňuje takovou interaktivitu s minimálním úsilím pro vývojáře.

Druhý skript se zaměřuje na automatizaci nasazení pomocí akcí GitHub. To je zvláště důležité pro efektivní údržbu a aktualizaci webových stránek pkgdown. Pomocí a deploy-app.yaml můžete automatizovat proces odesílání aktualizací a nasazení aplikace ShinyLive. Klíčové příkazy jako actions/checkout@v3 zajistit, aby byl použit nejnovější kód z úložiště, zatímco nastavení specifické pro Shinylive se hladce integruje do pracovního postupu. Představte si například, že aktualizujete aplikaci novými filtry nebo funkcemi – tato automatizace zajišťuje, že se změny okamžitě projeví online, šetří čas a omezuje ruční chyby. ⚙️

Třetí řešení zahrnuje zabalení aplikace Shiny do statického souboru HTML. Použitím shinylive.js, mohou vývojáři vložit aplikaci přímo na svůj web pkgdown, čímž se vyhnou potřebě aktivního R serveru. Tato metoda zpřístupňuje aplikaci uživatelům bez nainstalovaného R, což zlepšuje dostupnost. Učitel by například mohl sdílet interaktivní aplikaci o populačních datech se studenty, kteří je mohou prozkoumat přímo ze svých prohlížečů. Toto řešení je zvláště cenné pro nekodéry, protože přeměňuje složité datové sady na poutavý a vzdělávací zážitek. 🌐

Vložení aplikace Shiny na webovou stránku pkgdown pomocí Shinylive

Řešení 1: R s Shinylive pro integraci frontendu a backendu

# 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)

Nasazení Shinylive pomocí akcí GitHub

Řešení 2: Automatizace nasazení pomocí GitHub Actions a 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: ./

Přidání statického HTML Wrapperu pro aplikaci Shiny

Řešení 3: Zabalení lesklé aplikace do statického HTML pro integraci 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>

Zlepšení dostupnosti a výkonu pro webové stránky pkgdown pomocí ShinyLive

Jedna silná výhoda použití ShinyLive je jeho schopnost umožnit samostatnou interaktivitu bez spoléhání se na aktivní R server. Díky tomu je ideální pro hostování aplikací na statických platformách, jako jsou stránky GitHub. Na rozdíl od tradičních aplikací Shiny, které potřebují nepřetržitou podporu serveru, ShinyLive převede vaši aplikaci na samostatný balíček JavaScriptu. Tento balíček lze vložit přímo na váš web pkgdown, což uživatelům umožňuje bezproblémově prozkoumat vaše datové sady z jakéhokoli prohlížeče. Pokud například váš balíček R obsahuje datovou sadu metrik kvality vzduchu, uživatelé mohou data dynamicky filtrovat a vizualizovat, aniž by museli instalovat další software. 🌍

Další výhodou je jeho přizpůsobivost nekodéry. Začleněním funkcí, jako jsou rozevírací seznamy a posuvníky, vytvoříte prostředí, kde může kdokoli pracovat s vašimi daty. Zdravotnický pracovník by například mohl zkoumat údaje o populaci výběrem věkových skupin nebo regionů, aniž by musel psát jediný řádek kódu. Kombinace ShinyLive a GitHub Pages zajišťuje, že tyto interaktivní funkce jsou snadno dostupné a intuitivní, takže váš projekt má velký dopad na širší publikum. 🧩

ShinyLive navíc zvyšuje výkon vašeho webu pkgdown optimalizací zdrojů potřebných ke spuštění aplikace. Protože je celá logika zkompilována do JavaScriptu, aplikace se načítají rychleji a nabízejí plynulejší interaktivitu. To je užitečné zejména pro předvádění velkých datových sad, kde by jinak vykreslování grafů nebo použití filtrů mohlo způsobit zpoždění. Výsledkem je uživatelská zkušenost na profesionální úrovni, která je v souladu s moderními webovými standardy a očekáváními týkajícími se dostupnosti. 🚀

Často kladené otázky o používání ShinyLive na webových stránkách pkgdown

  1. Jak vložím aplikaci Shiny na webovou stránku pkgdown?
  2. Můžete použít ShinyLive převést svou aplikaci Shiny na balíček JavaScript a vložit ji do Articles části vašeho webu pkgdown.
  3. Je nutné mít živý R server pro aplikace ShinyLive?
  4. Ne, aplikace ShinyLive jsou samostatné a mohou běžet přímo v prohlížeči, aniž by potřebovaly aktivní R server.
  5. Mohu aplikaci aktualizovat automaticky, když do GitHubu vložím změny?
  6. Ano, můžete použít GitHub Actions k automatizaci nasazení. Pracovní postup jako deploy-app.yaml může to zvládnout za vás.
  7. Jaké typy uživatelských interakcí mohu zahrnout?
  8. Můžete přidat funkce jako selectInput pro rozevírací seznamy a sliderInput pro číselné rozsahy, aby byla vaše aplikace vysoce interaktivní.
  9. Je ShinyLive vhodný pro nekodéry?
  10. Absolutně! ShinyLive umožňuje nekodérům prozkoumávat data prostřednictvím interaktivních widgetů, což z nich dělá skvělý nástroj pro usnadnění.

Interaktivní průzkum dat je snadný

ShinyLive poskytuje uživatelsky přívětivé řešení pro integraci interaktivity do webových stránek pkgdown. Transformací aplikací Shiny na balíčky JavaScript připravené pro prohlížeč otevírá dveře k poutavé vizualizaci dat pro uživatele všech úrovní dovedností. Pomocí jednoduchých rozbalovacích nabídek a posuvníků lze například prozkoumat datovou sadu o demografických údajích. 🌟

Kombinace ShinyLive s akcemi GitHub zjednodušuje proces nasazení a zajišťuje, že váš web zůstane bez námahy aktuální. Ať už jste vývojář nebo datový profesionál, tento přístup překlenuje propast mezi technickým obsahem a intuitivním uživatelským zážitkem, takže vaše datové příběhy ožijí ve webovém prohlížeči. 📊

Zdroje a reference
  1. Obsah a příklady byly inspirovány oficiální dokumentací a návody ShinyLive. Pro více podrobností navštivte ShinyLive Úvod .
  2. Pracovní postupy nasazení jsou přizpůsobeny z ShinyLive GitHub úložiště , která zahrnuje ukázkové pracovní postupy GitHub Actions a tipy pro integraci.
  3. Integrační strategie pkgdown se řídila pkgdown dokumentace , která nabízí přehled o vytváření a správě dokumentačních webů pro balíčky R.
  4. Další inspirace přišla ze zkoumání živého příkladu na Stránka populace SC GitHub , která představuje aplikaci ShinyLive v reálném světě v pkgdown.