Інтеграція програм ShinyLive у веб-сайт pkgdown на сторінках GitHub

Інтеграція програм ShinyLive у веб-сайт pkgdown на сторінках GitHub
Інтеграція програм ShinyLive у веб-сайт pkgdown на сторінках GitHub

Покращення інтерактивності для некодерів за допомогою ShinyLive

Розміщення наборів даних і допоміжних функцій на сторінках GitHub є чудовим способом зробити ресурси доступними. Для розробників, які працюють з R, інтеграція інтерактивності може ще більше підвищити залучення користувачів, особливо для тих, хто не займається кодуванням і досліджує ваші дані. ShinyLive пропонує практичне рішення для вбудовування такої інтерактивності безпосередньо на веб-сайт pkgdown.

Незважаючи на наявність ресурсів щодо включення додатків Shiny у пакети R або сторінки GitHub, залишається прогалина в знаннях про ефективне поєднання ShinyLive із веб-сайтами pkgdown. Як хтось, хто підтримує невеликі R-пакети з наборами даних і допоміжними функціями, ви, ймовірно, прагнете зробити дослідження даних інтуїтивно зрозумілим і зручним для користувача. ShinyLive може подолати цю прогалину.

Включення програми Shiny у розділ «Статті» вашого веб-сайту pkgdown пропонує спрощений спосіб надання інтерактивних функцій без перевантаження документації пакету R. Цей метод гарантує, що навіть користувачі, які не знайомі з програмуванням, можуть легко підмножити та візуалізувати дані. Це безпрограшний варіант як для розробників, так і для користувачів! 🚀

Наприклад, уявіть набір даних про здоров’я, де користувачі можуть фільтрувати дані про населення за демографічними ознаками. Використовуючи ShinyLive, ви можете створювати та розгортати цю програму на сторінках GitHub, роблячи дані доступними в динамічний спосіб. У цій статті покроково описано, як досягти цього за допомогою наявних налаштувань програми. 🛠️

Команда Приклад використання
selectInput Використовується в Shiny UI для створення спадного меню для вибору параметрів. Приклад: selectInput("var", "Select Variable:", choices = names(mtcars)). Це дозволяє динамічно вводити дані користувача для вибору змінних.
sliderInput Створює віджет введення повзунком у Shiny, щоб дозволити користувачам вибирати діапазон значень. Приклад: sliderInput("діапазон", "Діапазон фільтра:", min = 0, max = 100, value = c(25, 75)). Необхідний для інтерактивної фільтрації.
renderPlot Використовується в логіці сервера Shiny для динамічного створення графіків на основі введення користувача. Приклад: output$plot
filter A function from dplyr to subset data based on conditions. Example: filter(get(input$var) >Функція від dplyr до підмножини даних на основі умов. Приклад: filter(get(input$var) >= input$range[1]). Корисно для застосування визначених користувачем фільтрів до наборів даних.
aes_string Використовується в ggplot2 для програмного налаштування естетики, наприклад, осей x і y. Приклад: aes_string(x = input$var). Ідеально підходить для створення динамічного сюжету.
geom_histogram Шар ggplot2 для створення візуалізацій гістограм. Приклад: geom_histogram(bins = 10, fill = "blue", color = "white"). Корисно для візуалізації розподілу в додатку.
uses Синтаксис YAML у GitHub Actions для визначення багаторазових дій. Приклад: використовує: actions/checkout@v3. Забезпечує повну інтеграцію з попередньо визначеними робочими процесами.
shinylive.js Бібліотека JavaScript для запуску програм Shiny у браузері. Приклад: . Дозволяє вбудовувати програми Shiny у статичні сторінки HTML.
Shinylive.App Ініціалізує та запускає програму ShinyLive у вказаному контейнері HTML. Приклад: const app = new Shinylive.App("#shiny-app");. Забезпечує функціональність програми на основі браузера.
sliderInput Створює повзунок для вибору числового діапазону. Приклад: sliderInput("діапазон", "Діапазон фільтра:", min = 0, max = 100, value = c(25, 75)). Додає фільтрацію динамічного діапазону для користувачів.

Створення інтерактивних інструментів дослідження даних за допомогою Shinylive

Перший сценарій, створений за допомогою R і Shiny, зосереджений на створенні динамічного інтерфейсу, який дозволяє користувачам досліджувати набори даних в інтерактивному режимі. The виберіть Вхід Команда необхідна для того, щоб користувачі могли динамічно вибирати змінні зі спадного меню, налаштовуючи програму відповідно до своїх потреб. У парі з sliderInput, користувачі можуть додатково уточнити своє дослідження, вибравши певний діапазон значень для фільтрації даних. Наприклад, у наборі даних, як mtcars, користувачі можуть вибрати «mpg» як змінну та використати повзунок, щоб виокремити автомобілі з пробігом від 20 до 30. Ця комбінація забезпечує зручний та інтуїтивно зрозумілий інтерфейс. 🚀

Логіка на стороні сервера доповнює інтерфейс користувача, генеруючи реактивні виходи на основі введених користувачем даних. Ось, renderPlot функція має вирішальне значення — вона обробляє відфільтрований набір даних і генерує динамічні візуалізації на льоту. Інтеграція dplyr фільтр функція дозволяє безперебійне створення піднабору даних, тоді як ggplot2 geom_hystogram забезпечує візуально привабливі та інформативні сюжети. Уявіть собі набір даних про здоров’я, де користувач може фільтрувати вікові діапазони та миттєво бачити розподіл показників здоров’я — цей сценарій робить таку інтерактивність можливою з мінімальними зусиллями для розробників.

Другий сценарій зосереджений на автоматизації розгортання за допомогою GitHub Actions. Це особливо важливо для ефективної підтримки та оновлення веб-сайтів pkgdown. Використовуючи a deploy-app.yaml файл, ви можете автоматизувати процес надсилання оновлень і розгортання програми ShinyLive. Ключові команди, як дії/перевірка@v3 переконайтеся, що використовується найновіший код зі сховища, тоді як спеціальні налаштування Shinylive легко інтегруються в робочий процес. Наприклад, уявіть, що ви оновлюєте свою програму за допомогою нових фільтрів або функцій — ця автоматизація забезпечує миттєве відображення змін онлайн, заощаджуючи час і зменшуючи кількість помилок, що виникають вручну. ⚙️

Третє рішення передбачає загортання програми Shiny у статичний файл HTML. Використовуючи shinylive.js, розробники можуть вставляти програму безпосередньо на свій веб-сайт pkgdown, обходячи потребу в активному сервері R. Цей метод робить додаток доступним для користувачів без інстальованого R, покращуючи доступність. Наприклад, учитель може поділитися інтерактивним додатком із даними про населення зі студентами, які зможуть досліджувати його безпосередньо зі своїх браузерів. Це рішення є особливо цінним для некодерів, оскільки воно перетворює складні набори даних у захоплюючий та навчальний досвід. 🌐

Вбудовування програми Shiny у веб-сайт pkgdown за допомогою Shinylive

Рішення 1: R із Shinylive для інтеграції фронтенду та серверної частини

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

Розгортання Shinylive за допомогою дій GitHub

Рішення 2: Автоматизація розгортання за допомогою GitHub Actions і 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: ./

Додавання статичної оболонки HTML для програми Shiny

Рішення 3: загортання Shiny App у статичний HTML для інтеграції 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>

Покращення доступності та продуктивності для веб-сайтів pkgdown за допомогою ShinyLive

Одна потужна перевага використання ShinyLive це його здатність увімкнути автономну інтерактивність, не покладаючись на активний сервер R. Це робить його ідеальним для розміщення програм на статичних платформах, таких як GitHub Pages. На відміну від традиційних програм Shiny, які потребують постійної підтримки сервера, ShinyLive перетворює вашу програму на автономний пакет JavaScript. Цей пакет можна вставити безпосередньо на ваш веб-сайт pkgdown, дозволяючи користувачам безперешкодно досліджувати ваші набори даних з будь-якого браузера. Наприклад, якщо ваш пакет R містить набір даних показників якості повітря, користувачі можуть динамічно фільтрувати та візуалізувати дані без необхідності встановлення будь-якого додаткового програмного забезпечення. 🌍

Ще одна перевага полягає в його адаптованості до некодувальники. Використовуючи такі функції, як розкривні списки та повзунки, ви створюєте середовище, де кожен може взаємодіяти з вашими даними. Наприклад, медичний працівник може перевірити дані про населення, вибравши вікові групи чи регіони, не потребуючи написання жодного рядка коду. Поєднання ShinyLive і GitHub Pages гарантує, що ці інтерактивні функції легкодоступні та інтуїтивно зрозумілі, що робить ваш проект дуже вражаючим для ширшої аудиторії. 🧩

Крім того, ShinyLive підвищує продуктивність вашого веб-сайту pkgdown шляхом оптимізації ресурсів, необхідних для запуску програми. Оскільки вся логіка скомпільована в JavaScript, програми завантажуються швидше та пропонують плавнішу інтерактивність. Це особливо корисно для демонстрації великих наборів даних, де візуалізація графіків або застосування фільтрів може призвести до затримок. Результатом є користувальницький досвід професійного рівня, який відповідає сучасним веб-стандартам і очікуванням доступності. 🚀

Часті запитання про використання ShinyLive на веб-сайтах pkgdown

  1. Як вставити програму Shiny на веб-сайт pkgdown?
  2. Ви можете використовувати ShinyLive щоб перетворити вашу програму Shiny на пакет JavaScript і вставити її в Articles розділ вашого веб-сайту pkgdown.
  3. Чи потрібен живий сервер R для програм ShinyLive?
  4. Ні, програми ShinyLive є автономними та можуть працювати безпосередньо у браузері без активного сервера R.
  5. Чи можу я автоматично оновлювати програму, коли надсилаю зміни до GitHub?
  6. Так, можна використовувати GitHub Actions для автоматизації розгортання. Такий робочий процес deploy-app.yaml може впоратися з цим за вас.
  7. Які типи взаємодії з користувачем я можу включити?
  8. Ви можете додати такі функції, як selectInput для спадних і sliderInput для числових діапазонів, щоб зробити вашу програму дуже інтерактивною.
  9. Чи підходить ShinyLive для тих, хто не кодує?
  10. Абсолютно! ShinyLive дозволяє некодувальникам досліджувати дані за допомогою інтерактивних віджетів, що робить його чудовим інструментом для забезпечення доступності.

Інтерактивне дослідження даних стало простим

ShinyLive надає зручне рішення для інтеграції інтерактивності у веб-сайти pkgdown. Завдяки перетворенню додатків Shiny на готові для браузера пакети JavaScript, він відкриває двері для захоплюючої візуалізації даних для користувачів будь-якого рівня кваліфікації. Наприклад, набір демографічних даних можна досліджувати за допомогою простих спадних меню та повзунків. 🌟

Поєднання ShinyLive із GitHub Actions спрощує процес розгортання, забезпечуючи без зусиль оновлення вашого веб-сайту. Незалежно від того, розробник ви чи фахівець із обробки даних, цей підхід усуває розрив між технічним вмістом та інтуїтивно зрозумілим досвідом користувача, завдяки чому ваші історії даних оживають у веб-браузері. 📊

Ресурси та література
  1. Вміст і приклади були створені за мотивами офіційної документації та посібників ShinyLive. Для отримання додаткової інформації відвідайте Введення в ShinyLive .
  2. Робочі процеси розгортання адаптовані з Репозиторій ShinyLive GitHub , який містить приклади робочих процесів GitHub Actions і поради щодо інтеграції.
  3. Стратегія інтеграції pkgdown керувалася Документація pkgdown , який пропонує інформацію про створення та керування веб-сайтами документації для пакетів R.
  4. Додаткове натхнення прийшло завдяки дослідженню живого прикладу на Сторінка SC Population на GitHub , який демонструє реальне застосування ShinyLive у pkgdown.