Ako vytvoriť interaktívny dashboard v R pomocou Quarto 150 150 cleandata

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.

interactive_dashboard_quarto

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:

  • DT: dynamické tabuľky
  • Plotly: interaktívne grafy
  • Leaflet: mapové vizualizácie

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:

devtools::install_github("Arnold-Kakas/summarywidget")

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.

  • EDA časových radov: Ako odhaliť vzory skryté v čase 150 150 cleandata EDA časových radov: Ako odhaliť vzory skryté v čase
  • susR: Zjednodušenie práce s dátami Štatistického úradu SR v R 150 150 cleandata susR: Zjednodušenie práce s dátami Štatistického úradu SR v R

Leave a Reply

Your email address will not be published.