Интеграция приложений 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", "Выбрать переменную:", choice = name(mtcars)). Это позволяет осуществлять динамический пользовательский ввод для выбора переменных.
sliderInput Создает виджет ввода слайдера в Shiny, позволяющий пользователям выбирать диапазон значений. Пример: слайдерВход("диапазон", "Диапазон фильтра:", мин = 0, макс = 100, значение = c(25, 75)). Необходим для интерактивной фильтрации.
renderPlot Используется в логике сервера Shiny для динамического создания графиков на основе пользовательского ввода. Пример: вывод $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 = «синий», цвет = «белый»). Полезно для визуализации дистрибутивов в приложении.
uses Синтаксис YAML в действиях GitHub для указания многократно используемых действий. Пример: используется: action/checkout@v3. Обеспечивает плавную интеграцию с предопределенными рабочими процессами.
shinylive.js Библиотека JavaScript для запуска приложений Shiny в браузере. Пример: . Позволяет встраивать приложения Shiny в статические HTML-страницы.
Shinylive.App Инициализирует и запускает приложение ShinyLive в указанном HTML-контейнере. Пример: const app = new Shinylive.App("#shiny-app");. Обеспечивает функциональность приложения на основе браузера.
sliderInput Создает ползунок для выбора числового диапазона. Пример: слайдерВход("диапазон", "Диапазон фильтра:", мин = 0, макс = 100, значение = c(25, 75)). Добавляет фильтрацию динамического диапазона для пользователей.

Создание интерактивных инструментов исследования данных с помощью Shinylive

Первый скрипт, созданный с использованием R и Shiny, фокусируется на создании динамического интерфейса, который позволяет пользователям интерактивно исследовать наборы данных. выберитеВвод Команда необходима для того, чтобы пользователи могли динамически выбирать переменные из раскрывающегося меню, адаптируя приложение к их потребностям. В сочетании с слайдерВводпользователи могут уточнить свое исследование, выбрав определенный диапазон значений для фильтрации данных. Например, в наборе данных типа МТКАРС, пользователи могут выбрать «миль на галлон» в качестве переменной и использовать ползунок, чтобы изолировать автомобили с пробегом от 20 до 30. Эта комбинация обеспечивает удобный и интуитивно понятный интерфейс. 🚀

Логика на стороне сервера дополняет пользовательский интерфейс, генерируя реактивные выходные данные на основе вводимых пользователем данных. Здесь рендерплот Функция имеет решающее значение — она обрабатывает отфильтрованный набор данных и генерирует динамические визуализации на лету. Интеграция dplyr фильтр функция позволяет плавно разбивать набор данных, а функция ggplot2 geom_histogram обеспечивает визуально привлекательные и информативные сюжеты. Представьте себе набор данных о состоянии здоровья, в котором пользователь может фильтровать возрастные диапазоны и мгновенно видеть распределение показателей здоровья — этот скрипт делает такую ​​интерактивность возможной с минимальными усилиями для разработчиков.

Второй скрипт ориентирован на автоматизацию развертывания с помощью GitHub Actions. Это особенно важно для эффективного обслуживания и обновления веб-сайтов pkgdown. Используя развертывание-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 в статический 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 на GitHub , который демонстрирует реальное применение ShinyLive в pkgdown.