Su ShinyLive pagerinkite nekoduojančių asmenų interaktyvumą
Duomenų rinkinių ir pagalbinių funkcijų priegloba „GitHub“ puslapiuose yra puikus būdas padaryti prieinamus išteklius. Kūrėjams, dirbantiems su R, interaktyvumo integravimas gali dar labiau sustiprinti vartotojų įsitraukimą, ypač tų, kurie nekoduoja jūsų duomenis. ShinyLive siūlo praktišką sprendimą, kaip įterpti tokią interaktyvumą tiesiai į pkgdown svetainę.
Nepaisant išteklių, skirtų „Shiny“ programoms įtraukti į R paketus arba „GitHub“ puslapius, trūksta žinių apie efektyvų „ShinyLive“ ir „pkgdown“ svetainių derinimą. Kaip asmuo, prižiūrintis mažus R paketus su duomenų rinkiniais ir pagalbinėmis funkcijomis, greičiausiai siekiate, kad duomenų tyrinėjimas būtų intuityvus ir patogus vartotojui. ShinyLive gali įveikti šią spragą.
Įtraukus „Shiny“ programą į „pkgdown“ svetainės skiltį „Straipsniai“, galima supaprastinti interaktyvių funkcijų pateikimą neperkraunant R paketo dokumentacijos. Šis metodas užtikrina, kad net naudotojai, kurie nėra susipažinę su kodavimu, gali lengvai nustatyti ir vizualizuoti duomenis. Tai naudinga kūrėjams ir vartotojams! 🚀
Pavyzdžiui, įsivaizduokite sveikatos duomenų rinkinį, kuriame vartotojai gali filtruoti gyventojų duomenis pagal demografinius rodiklius. Naudodami ShinyLive galite sukurti ir įdiegti šią programą GitHub puslapiuose, kad duomenys būtų pasiekiami dinamiškai. Šiame straipsnyje žingsnis po žingsnio nagrinėjama, kaip tai pasiekti naudojant esamą programos sąranką. 🛠️
komandą | Naudojimo pavyzdys |
---|---|
selectInput | Naudojamas blizgančioje vartotojo sąsajoje kuriant išskleidžiamąjį meniu parinkčių pasirinkimui. Pavyzdys: selectInput("var", "Select Variable:", options = names(mtcars)). Tai leidžia dinamiškai įvesti vartotoją kintamiesiems pasirinkti. |
sliderInput | Sukuria slankiklio įvesties valdiklį „Shiny“, kad vartotojai galėtų pasirinkti verčių diapazoną. Pavyzdys: sliderInput("diapazonas", "Filtro diapazonas:", min = 0, max = 100, reikšmė = c(25, 75)). Būtinas interaktyviam filtravimui. |
renderPlot | Naudojama Shiny serverio logikoje dinamiškai generuoti brėžinius pagal vartotojo įvestį. Pavyzdys: output$plot |
filter | A function from dplyr to subset data based on conditions. Example: filter(get(input$var) >Funkcija nuo dplyr iki pogrupio duomenų, pagrįstų sąlygomis. Pavyzdys: filtras(get(input$var) >= input$range[1]). Naudinga taikant vartotojo nustatytus filtrus duomenų rinkiniams. |
aes_string | Naudojamas ggplot2 programiškai nustatant estetiką, pvz., x ir y ašis. Pavyzdys: aes_string(x = input$var). Idealiai tinka dinamiškam siužetui kurti. |
geom_histogram | ggplot2 sluoksnis histogramos vizualizacijai kurti. Pavyzdys: geom_histogram (dėžės = 10, užpildymas = "mėlyna", spalva = "balta"). Naudinga vizualizuoti paskirstymus programoje. |
uses | YAML sintaksė „GitHub Actions“, kad nurodytų pakartotinai naudojamus veiksmus. Pavyzdys: uses: action/checkout@v3. Užtikrina sklandų integravimą su iš anksto nustatytomis darbo eigomis. |
shinylive.js | „JavaScript“ biblioteka, skirta „Shiny“ programoms paleisti naršyklėje. Pavyzdys: . Įgalina įterpti blizgančias programas į statinius HTML puslapius. |
Shinylive.App | Inicijuoja ir paleidžia ShinyLive programą nurodytame HTML konteineryje. Pavyzdys: const app = new Shinylive.App("#shiny-app");. Teikia naršyklės programos funkcijas. |
sliderInput | Sukuria slankiklio įvestį skaitiniam diapazonui pasirinkti. Pavyzdys: sliderInput("diapazonas", "Filtro diapazonas:", min = 0, max = 100, reikšmė = c(25, 75)). Naudotojams prideda dinaminio diapazono filtravimą. |
Interaktyvių duomenų tyrinėjimo įrankių kūrimas naudojant „Shinylive“.
Pirmasis scenarijus, sukurtas naudojant R ir Shiny, skirtas sukurti dinaminę sąsają, leidžiančią vartotojams interaktyviai tyrinėti duomenų rinkinius. The pasirinkite Įvestis komanda yra būtina, kad vartotojai galėtų dinamiškai pasirinkti kintamuosius iš išskleidžiamojo meniu, pritaikydami programą pagal savo poreikius. Suporuotas su sliderInput, naudotojai gali dar labiau patikslinti savo tyrinėjimą pasirinkdami konkretų verčių diapazoną duomenims filtruoti. Pavyzdžiui, tokiame duomenų rinkinyje kaip mtcars, vartotojai gali pasirinkti „mpg“ kaip kintamąjį ir naudoti slankiklį, kad atskirtų automobilius, kurių rida yra nuo 20 iki 30. Šis derinys užtikrina patogią ir intuityvią sąsają. 🚀
Serverio logika papildo vartotojo sąsają generuodama reaktyviuosius išėjimus pagal vartotojo įvestį. Čia, renderPlot funkcija yra labai svarbi – ji apdoroja filtruotą duomenų rinkinį ir generuoja dinamines vizualizacijas. Dplyr integravimas filtras funkcija leidžia sklandžiai nustatyti duomenų rinkinio pogrupį, o ggplot2 geom_histograma užtikrina vizualiai patrauklius ir informatyvius siužetus. Įsivaizduokite sveikatos duomenų rinkinį, kuriame vartotojas galėtų filtruoti amžiaus intervalus ir akimirksniu pamatyti sveikatos metrikos pasiskirstymą – šis scenarijus leidžia sukurti tokį interaktyvumą, nes kūrėjams reikia minimalių pastangų.
Antrasis scenarijus skirtas automatizuoti diegimą naudojant „GitHub Actions“. Tai ypač svarbu norint efektyviai prižiūrėti ir atnaujinti pkgdown svetaines. Naudojant a deploy-app.yaml failą, galite automatizuoti naujinimų siuntimo ir „ShinyLive“ programos diegimo procesą. Pagrindinės komandos kaip action/checkout@v3 užtikrinti, kad būtų naudojamas naujausias saugyklos kodas, o specifinė „Shinylive“ sąranka sklandžiai integruojama į darbo eigą. Pavyzdžiui, įsivaizduokite, kad atnaujinate programą naudojant naujus filtrus ar funkcijas – ši automatika užtikrina, kad pakeitimai nedelsiant atsispindėtų internete, sutaupysite laiko ir sumažinsite neautomatinių klaidų. ⚙️
Trečiasis sprendimas apima „Shiny“ programos įvyniojimą į statinį HTML failą. Naudojant shinylive.js, kūrėjai gali įterpti programą tiesiai į savo pkgdown svetainę, apeidami aktyvaus R serverio poreikį. Taikant šį metodą programa pasiekiama vartotojams, neįdiegusiems R, todėl pasiekiamumas pagerinamas. Pavyzdžiui, mokytojas galėtų bendrinti interaktyvią gyventojų duomenų programėlę su mokiniais, kurie gali juos naršyti tiesiai iš savo naršyklių. Šis sprendimas yra ypač vertingas nekoduotojams, nes sudėtingus duomenų rinkinius paverčia patrauklia ir mokoma patirtimi. 🌐
Blizgančios programos įterpimas į pkgdown svetainę naudojant Shinylive
1 sprendimas: R su Shinylive, skirtu Frontend ir Backend integracijai
# 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“ diegimas naudojant „GitHub“ veiksmus
2 sprendimas: diegimo automatizavimas naudojant „GitHub Actions“ ir „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: ./
Statinio HTML įvynioklio pridėjimas „Shiny“ programai
3 sprendimas: apvyniokite blizgančią programą į statinį HTML, kad būtų galima integruoti 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 svetainių prieinamumo ir našumo pagerinimas naudojant ShinyLive
Vienas galingas naudojimo pranašumas ShinyLive yra jos galimybė įjungti atskirą interaktyvumą nepasikliaujant aktyviu R serveriu. Dėl to jis puikiai tinka programoms talpinti statinėse platformose, pvz., „GitHub Pages“. Skirtingai nuo tradicinių „Shiny“ programų, kurioms reikalingas nuolatinis serverio palaikymas, „ShinyLive“ konvertuoja jūsų programą į savarankišką „JavaScript“ paketą. Šį paketą galima įterpti tiesiai į jūsų pkgdown svetainę, todėl vartotojai gali sklandžiai tyrinėti jūsų duomenų rinkinius iš bet kurios naršyklės. Pavyzdžiui, jei jūsų R pakete yra oro kokybės metrikos duomenų rinkinys, vartotojai gali dinamiškai filtruoti ir vizualizuoti duomenis neįdiegdami jokios papildomos programinės įrangos. 🌍
Kitas privalumas yra jo pritaikymas nekoduotojai. Įtraukdami tokias funkcijas kaip išskleidžiamieji meniu ir slankikliai, sukuriate aplinką, kurioje kiekvienas gali sąveikauti su jūsų duomenimis. Pavyzdžiui, sveikatos priežiūros specialistas galėtų tirti gyventojų duomenis pasirinkdamas amžiaus grupes arba regionus, nereikėdamas rašyti nė vienos kodo eilutės. „ShinyLive“ ir „GitHub“ puslapių derinys užtikrina, kad šios interaktyvios funkcijos būtų lengvai pasiekiamos ir intuityvios, todėl jūsų projektas bus labai įtakingas platesnei auditorijai. 🧩
Be to, ShinyLive pagerina jūsų pkgdown svetainės našumą optimizuodama išteklius, reikalingus programai paleisti. Kadangi visa logika yra sukompiliuota į „JavaScript“, programos įkeliamos greičiau ir siūlo sklandesnį interaktyvumą. Tai ypač naudinga demonstruojant didelius duomenų rinkinius, kur dėl brėžinių atvaizdavimo ar filtrų taikymo gali atsirasti vėlavimų. Rezultatas – profesionalaus lygio vartotojo patirtis, atitinkanti šiuolaikinius žiniatinklio standartus ir pasiekiamumo lūkesčius. 🚀
Dažnai užduodami klausimai apie ShinyLive naudojimą pkgdown svetainėse
- Kaip įterpti Shiny programą į pkgdown svetainę?
- Galite naudoti ShinyLive konvertuoti savo „Shiny“ programą į „JavaScript“ paketą ir įterpti jį į Articles savo pkgdown svetainės skyrių.
- Ar „ShinyLive“ programoms būtinas tiesioginis R serveris?
- Ne, „ShinyLive“ programos yra atskiros ir gali veikti tiesiogiai naršyklėje, nereikalaujant aktyvaus R serverio.
- Ar galiu automatiškai atnaujinti programą, kai pateikiu pakeitimus į „GitHub“?
- Taip, galite naudoti GitHub Actions automatizuoti diegimą. Darbo eiga kaip deploy-app.yaml gali tai padaryti už jus.
- Kokius naudotojo sąveikos tipus galiu įtraukti?
- Galite pridėti tokių funkcijų kaip selectInput išskleidžiamiesiems meniu ir sliderInput skaitiniams diapazonams, kad jūsų programa būtų labai interaktyvi.
- Ar ShinyLive tinka ne koduotojams?
- absoliučiai! „ShinyLive“ leidžia nekoduotiems asmenims tyrinėti duomenis naudojant interaktyvius valdiklius, todėl tai yra puikus prieinamumo įrankis.
Interaktyvus duomenų tyrinėjimas yra paprastas
ShinyLive suteikia vartotojui patogų sprendimą interaktyvumui integruoti į pkgdown svetaines. Pakeitus „Shiny“ programas į naršyklei paruoštus „JavaScript“ paketus, tai atveria duris patraukliam duomenų vizualizavimui visų įgūdžių lygių naudotojams. Pavyzdžiui, demografinių duomenų rinkinį galima tyrinėti naudojant paprastus išskleidžiamuosius meniu ir slankiklius. 🌟
„ShinyLive“ sujungimas su „GitHub Actions“ supaprastina diegimo procesą ir užtikrina, kad jūsų svetainė būtų be vargo atnaujinta. Nesvarbu, ar esate kūrėjas, ar duomenų profesionalas, šis metodas užpildo atotrūkį tarp techninio turinio ir intuityvios naudotojo patirties, todėl jūsų duomenų istorijos tampa gyvos žiniatinklio naršyklėje. 📊
Ištekliai ir nuorodos
- Turinį ir pavyzdžius įkvėpė oficiali ShinyLive dokumentacija ir vadovėliai. Norėdami gauti daugiau informacijos, apsilankykite ShinyLive įvadas .
- Diegimo darbo eigos yra pritaikytos iš ShinyLive GitHub saugykla , kuriame yra „GitHub Actions“ darbo eigos pavyzdžiai ir integravimo patarimai.
- „pkgdown“ integracijos strategija vadovavosi pkgdown dokumentacija , kuriame pateikiamos įžvalgos, kaip kurti ir valdyti R paketų dokumentacijos svetaines.
- Papildomas įkvėpimas atsirado ištyrus gyvą pavyzdį adresu SC gyventojų „GitHub“ puslapis , kuriame demonstruojamas realus ShinyLive taikymas pkgdown.