Ako vytvoriť interaktívny dashboard v R pomocou Quarto
V tomto blogu vám predstavím Quarto ako moderný nástroj na tvorbu interaktívnych dashboardov. Porovnám ho s alternatívami ako Shiny, Power BI a Tableau, ukážem jeho výhody, obmedzenia a možnosti prispôsobenia pomocou HTML, CSS a JavaScript. Ak hľadáte efektívny spôsob, ako prezentovať svoje dáta, tento blog je pre vás.
Ak ste čítali niektoré z mojich predchádzajúcich článkov, napríklad Vývoj Shiny aplikácie na optimalizáciu trás alebo Vývoj a nasadenie Shiny aplikácií v jazyku R, viete, že Shiny je jedným z najpopulárnejších nástrojov na tvorbu interaktívnych aplikácií v R.
Aj keď je Shiny veľmi výkonný, jeho učiaca krivka môže byť strmá a nasadzovanie aplikácií vyžaduje server. Preto, ak nepotrebujete príliš komplexné riešenia, stojí za to zvážiť Quarto, ktoré ponúka jednoduchší spôsob tvorby interaktívnych dashboardov priamo v prehliadači.
Čo je Quarto?
Quarto je moderný nástroj na tvorbu reportov, dokumentov, a dashboardov priamo v R. Umožňuje kombinovať text, kód a interaktívne prvky do jedného elegantného výstupu. V porovnaní so Shiny je zdieľanie a nasadzovanie výrazne jednoduchšie, najmä cez služby ako GitHub Pages.
Quarto je v podstate nástupcom RMarkdown. Ak ste už v minulosti pracovali s RMarkdown, Quarto vám bude veľmi známe. Ponúka však širší záber – umožňuje nielen vytváranie reportov a dokumentov, ale aj plne interaktívnych dashboardov, webových stránok, či rôznych formátov prezentácií. Quarto prináša väčšiu flexibilitu a rozšírenú podporu rôznych programovacích jazykov, ako sú R, Python, Julia a ďalšie, čím sa stáva univerzálnejším nástrojom pre moderné dátové analýzy a vizualizácie.
Jednou z veľkých výhod Quarto je podpora HTML, CSS a JavaScript, vďaka čomu máte veľkú flexibilitu v prispôsobovaní dizajnu a funkcií svojho dashboardu. To umožňuje vytvárať profesionálne riešenia, ktoré presne zodpovedajú vašim potrebám.
Vytváranie interaktívnych prvkov v Quarto
Aj keď Quarto podporuje hlavne statické dashboardy, existujú spôsoby, ako do nich pridať interaktivitu:
1. Runtime: Shiny
Ak je potrebná pokročilá interaktivita, Quarto umožňuje používať runtime: shiny
, čo znamená, že všetky výhody Shiny aplikácií môžete integrovať priamo do Quarto dashboardu. Avšak nasadzovanie si vyžaduje server, čo môže byť pre niektorých používateľov obmedzujúce.
2. Crosstalk – Jednoduchá interaktivita
Pre menej náročné prípady môžete využiť knižnicu Crosstalk. Tá umožňuje synchronizáciu interaktívnych komponentov, ako napríklad:
Jednou z hlavných výhod je, že Crosstalk a knižnice, ako summarywidget fungujú priamo v prehliadači pomocou JavaScriptu, čo znamená, že zmeny vo filtroch a interakciách sú extrémne rýchle. Všetko sa vykresľuje priamo na strane klienta (v prehliadači), takže nie je potrebné odosielať dáta na server. To zaručuje plynulé a responzívne ovládanie.
Deployment je navyše jednoduchý, pretože nevyžaduje server. Stačí dashboard publikovať, napríklad cez GitHub Pages, čím sa výrazne zjednoduší jeho zdieľanie.
KPI karty a knižnica summarywidget
Ak potrebujete do dashboardu zahrnúť KPI karty (tzv. valueboxy), Crosstalk vás v tomto smere obmedzuje. Pre tento účel odporúčam knižnicu summarywidget
, ktorá umožňuje zobrazovať základné štatistiky v prehľadnej forme.
Zistil som však, že pôvodná knižnica summarywidget
má obmedzenú funkcionalitu, preto som ju upravil a rozšíril o viac možností formátovania a štatistík. Upravenú verziu si môžete nainštalovať pomocou:
::install_github("Arnold-Kakas/summarywidget") devtools
Rovnako ako Crosstalk, aj summarywidget
využíva JavaScript, čo zaručuje veľmi rýchle vykresľovanie a responzívnosť priamo v prehliadači.
Porovnanie: Quarto vs. Shiny
Funkcia | Quarto | Shiny |
---|---|---|
Rýchlosť vykresľovania | Pri jednoduchých interakciách (Crosstalk, Plotly) veľmi rýchle, pri runtime: shiny porovnateľné so Shiny. |
Pri všetkých interakciách sa spolieha na server, môže byť pomalšie pri veľkej záťaži. |
Možnosti formátovania | Flexibilné – umožňuje použitie JS, CSS a HTML. | Flexibilné – umožňuje použitie JS, CSS a HTML. |
Nasadzovanie a zdieľanie | Možnosť nasadiť ako statickú stránku (bez servera) alebo interaktívnu aplikáciu cez runtime: shiny , ktorá vyžaduje server. |
Vyžaduje server (napr. Shiny Server, RStudio Connect, AWS, GCP…) pre interaktivitu a zdieľanie. |
Interaktivita | Interaktivita pomocou Crosstalk (plotly, DT, leaflet) alebo OJS. Pri runtime: shiny plne podporuje Shiny interaktivitu. |
Bohatá podpora interaktivity s plným využitím serverovej logiky a reaktívnych komponentov. |
Podpora pre komplexné prepojenia | Obmedzené na možnosti Shiny v prípade runtime: shiny , pri Crosstalk obmedzené len na synchronizáciu filtrov. |
Veľmi silná – umožňuje zložité interakcie a prepojenia medzi komponentmi prostredníctvom reaktivity. |
Cena | Bezplatné (open-source). | Bezplatné (open-source), ale prevádzka na serveroch môže byť nákladná. |
Hlavné výhody Quarto:
- Jednoduché zdieľanie: Deployment je jednoduchý. Stačí publikovať dashboard, napríklad cez GitHub Pages.
- Rýchlosť a responzívnosť: Vďaka využívaniu JavaScriptu sú zmeny vo filtroch a interakciách extrémne rýchle, pretože všetko beží na strane klienta (v prehliadači).
- Nízka zložitosť: Na rozdiel od Shiny, nepotrebujete server, ak využívate Crosstalk.
Obmedzenia:
- Obmedzená interaktivita: Quarto nemá také široké možnosti interakcie ako Shiny.
- Menej rozvinutý ekosystém: Niektoré knižnice (napríklad
summarywidget
) si vyžadujú úpravy na mieru.
Porovnanie: Quarto vs. Power BI
Funkcia | Quarto | Power BI |
---|---|---|
Rýchlosť vykresľovania | Pri jednoduchých interakciách (Crosstalk, Plotly) veľmi rýchle, pri runtime: shiny porovnateľné so Shiny. |
Môže byť pomalšie pri práci s veľkými datasetmi, najmä pri komplexných vizualizáciách alebo DAX metrikách. |
Možnosti formátovania | Veľké možnosti prispôsobenia pomocou CSS a HTML. | Obmedzené na rozhranie Power BI, úpravy formátovania sú menej flexibilné. |
Nasadzovanie a zdieľanie | Možnosť nasadiť ako statickú stránku (bez servera) alebo interaktívnu aplikáciu cez runtime: shiny , ktorá vyžaduje server. |
Nasadzovanie vyžaduje Power BI službu. |
Interaktivita | Interaktivita pomocou Crosstalk (plotly, DT, leaflet) alebo OJS. Pri runtime: shiny plne podporuje Shiny interaktivitu. |
Široká podpora interaktivity a natívnych vizualizácií. |
Podpora pre komplexné prepojenia | Obmedzené na Crosstalk a OJS alebo runtime: shiny. | Veľmi silné – umožňuje prepojenie viacerých zdrojov údajov a vizualizácií. |
Cena | Bezplatné (open-source). | Licencia vyžaduje predplatné. |
Hlavné výhody Quarto:
- Rýchlosť vykresľovania a responzívnosť: Quarto dashboardy, ktoré využívajú JavaScript (Crosstalk, summarywidget), fungujú priamo v prehliadači. Všetky zmeny vo filtroch alebo interaktívnych prvkoch sú extrémne rýchle, pretože prebiehajú na strane klienta.
- Flexibilita formátovania: Quarto ponúka obrovské možnosti prispôsobenia dizajnu pomocou CSS a HTML, čo umožňuje vytvoriť úplne na mieru prispôsobené dashboardy, ktoré presne zodpovedajú vašim požiadavkám.
- Jednoduchosť nasadzovania a zdieľania: Dashboardy vytvorené v Quarto je možné nasadiť ako statické stránky, napríklad na GitHub Pages. Nepotrebujete žiadne dodatočné servery ani licencie, čo šetrí čas aj financie.
- Open-source riešenie: Na rozdiel od Power BI, ktoré vyžaduje platenú licenciu na plnohodnotné využitie, Quarto je úplne bezplatné a otvorené riešenie.
Obmedzenia:
Komplexné vizualizácie: Power BI umožňuje dynamicky zobrazovať dáta v interaktívnych vizualizáciách. Quarto je v tomto smere obmedzené, pretože jeho interaktívne funkcie (Crosstalk) fungujú iba v rámci podporovaných knižníc, ako sú DT, plotly alebo leaflet. Prípadne vyžadujú znalosť OJS. Pre komplexné vizualizácie je nutný
runtime: shiny
.Použitie na profesionálne účely: Power BI je skôr považované za alternatívu k Shiny, a to najmä vďaka schopnosti spracovať veľké objemy dát z rôznych zdrojov. Quarto je vhodnejšie pre rýchlejšiu a menej komplexnú prezentáciu dát.
Porovnaním týchto dvoch nástrojov je zrejmé, že Quarto a Power BI majú rozličný use case. Quarto je ideálne na rýchlu tvorbu interaktívnych dashboardov a reportov, kde nie sú potrebné zložité transformácie dát alebo prepojenia medzi rôznymi zdrojmi údajov. Je vhodné pre používateľov, ktorí už spracovali dáta v R a chcú ich elegantne prezentovať. Power BI je naopak silným nástrojom na spracovanie dát a tvorbu robustných dashboardov s prepojením na rôzne zdroje údajov. Vďaka svojim analytickým schopnostiam a integrácii je často preferované pre profesionálne a podnikové riešenia.
Ak hľadáte nástroj na tvorbu dashboardov, rozhodnutie medzi Quarto a Power BI bude závisieť od konkrétnych potrieb. Zvážte rýchlosť, možnosti formátovania, spôsob spracovania dát a celkovú komplexitu riešenia, aby ste si vybrali ten najvhodnejší nástroj.
Príklad: Quarto Dashboard
Ak chcete vidieť Quarto dashboard v praxi, pozrite si môj interaktívny projekt:
Quarto Customers Dashboard.
Zdrojový kód je dostupný na GitHube:
GitHub repo.
Záver
Quarto a Shiny majú každý svoj ideálny spôsob použitia. Ak potrebujete plnú silu reaktivity, komplexné spracovanie dát a interakcie, Shiny je lepšia voľba. Na druhej strane, ak hľadáte elegantné a efektívne riešenie na tvorbu interaktívnych dashboardov bez zbytočnej zložitosti alebo využívať výhody jednoduchšieho nasadzovania, Quarto je skvelou alternatívou k Shiny. Je rýchle, jednoducho sa zdieľa a nevyžaduje server – vyskúšajte ho a uvidíte, ako jednoducho môžete prezentovať svoje dáta!
Popri Quarto a Shiny však existujú aj ďalšie alternatívy, ako napríklad Power BI a Tableau. Tieto nástroje sú obzvlášť vhodné pre profesionálne prostredia, kde je potrebné rýchlo vytvárať vizualizácie a analyzovať dáta z rôznych zdrojov bez nutnosti programovania.
- Power BI: Silné analytické nástroje a jednoduché nasadzovanie, ale menej flexibilné možnosti formátovania.
- Tableau: Vynikajúce vizualizačné možnosti a užívateľsky prívetivé prostredie, avšak nákladné a s obmedzenou podporou pokročilého programovania.
Flexibilita úprav pomocou HTML, CSS a JavaScript dáva Quarto náskok v možnostiach prispôsobenia dizajnu a funkčnosti oproti Power BI a podobným nástrojom. Preto si pri výbere nástroja premyslite, aké sú vaše požiadavky na interaktivitu, nasadzovanie a dizajn, aby ste si zvolili ten najvhodnejší nástroj pre váš projekt.
Leave a Reply