Повышение интерактивности для непрограммистов с помощью 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 librarieslibrary(shiny)library(dplyr)library(ggplot2)# UI definitionui <- 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 logicserver <- 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 appshinyApp(ui, server)
Развертывание Shinylive с помощью действий GitHub
Решение 2. Автоматизация развертывания с помощью GitHub Actions и Shinylive
# deploy-app.yaml# Workflow configurationname: Deploy ShinyLive Appon:push:branches:- mainjobs:deploy:runs-on: ubuntu-lateststeps:- name: Checkout repositoryuses: actions/checkout@v3- name: Set up Ruses: r-lib/actions/setup-r@v2- name: Install dependenciesrun: |Rscript -e "install.packages(c('shiny', 'shinylive'))"- name: Deploy appuses: posit-dev/r-shinylive@actions-v1with: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
- Как мне встроить приложение Shiny на веб-сайт pkgdown?
- Вы можете использовать ShinyLive чтобы преобразовать ваше приложение Shiny в пакет JavaScript и встроить его в Articles раздел вашего сайта pkgdown.
- Необходимо ли иметь работающий R-сервер для приложений ShinyLive?
- Нет, приложения ShinyLive являются автономными и могут запускаться непосредственно в браузере без необходимости активного сервера R.
- Могу ли я автоматически обновлять приложение при отправке изменений на GitHub?
- Да, вы можете использовать GitHub Actions для автоматизации развертывания. Рабочий процесс, как deploy-app.yaml может справиться с этим для вас.
- Какие типы взаимодействия с пользователем я могу включить?
- Вы можете добавить такие функции, как selectInput для выпадающих списков и sliderInput для числовых диапазонов, чтобы сделать ваше приложение высокоинтерактивным.
- Подходит ли ShinyLive для тех, кто не программирует?
- Абсолютно! ShinyLive позволяет непрограммистам исследовать данные с помощью интерактивных виджетов, что делает его отличным инструментом обеспечения доступности.
Интерактивное исследование данных стало проще
ShinyLive предоставляет удобное решение для интеграции интерактивности в веб-сайты pkgdown. Преобразуя приложения Shiny в готовые для браузера пакеты JavaScript, он открывает возможности для визуализации данных для пользователей всех уровней квалификации. Например, набор демографических данных можно изучить с помощью простых раскрывающихся меню и ползунков. 🌟
Сочетание ShinyLive с GitHub Actions упрощает процесс развертывания, гарантируя, что ваш веб-сайт будет оставаться актуальным без особых усилий. Независимо от того, являетесь ли вы разработчиком или специалистом по данным, этот подход устраняет разрыв между техническим контентом и интуитивно понятным пользовательским интерфейсом, позволяя вашим историям данных оживать в веб-браузере. 📊
Ресурсы и ссылки
- Содержание и примеры были вдохновлены официальной документацией и руководствами ShinyLive. Для получения более подробной информации посетите ShinyLive Введение .
- Рабочие процессы развертывания адаптированы из Репозиторий ShinyLive на GitHub , который включает примеры рабочих процессов GitHub Actions и советы по интеграции.
- Стратегия интеграции pkgdown основывалась на Документация pkgdown , который предлагает информацию о создании веб-сайтов документации для пакетов R и управлении ими.
- Дополнительное вдохновение пришло из изучения живого примера на сайте Страница населения SC на GitHub , который демонстрирует реальное применение ShinyLive в pkgdown.