Noriu piešti gražias duomenų vizualizacijas. Kuo tai padaryti?
Daugėjant surenkamų duomenų kiekiams vis aktualesnis tampa duomenų vizualizavimas. Kalbame jau ne tik apie skaičiukus gulinčius telekomunikacijų bendrovių, bankų ar socialinių tinklų serveriuose, bet duomenis surinktus apie tave, gulinčius tavo telefone, tavo kompiuteryje ir prieinamus tau – kiek žingsnių šiandien nuėjau, kiek laiko „sėdėjau“ telefone, kokia mano įtaka klimato kaitai ir t.t.
Nenuostabu, kad duomenų vizualizacija tampa vis labiau reikalinga tose profesijose kurios stipraus ryšio su dizainu lyg ir neturėtų turėti – duomenų analitikai galvoja kaip parodyti savo tyrimų įžvalgas vadovams, statistikai galvoja kaip parodyti tendencijas paprastam gyventojui, programuotojai suka galvas, kaip atvaizduoti programėlės vartotojo sudegintų kalorijų kiekį, o užsienyje, net žurnalistai mokinasi programuoti vien tam, kad galėtų piešti išskirtinio dizaino grafinius straipsnius.
Apie pagrindinius duomenų vizualizavimo principus jau rašiau čia, tačiau dažno pradedančiojo duomenų vizualizatoriaus klausimas visgi yra – „Kokia priemone turėčiau išmokti naudotis?“. Šiame straipsnyje mėginu pasiūlyti kelis atsakymus.
Naudojamos priemonės labai priklauso nuo tikslo – ką iš tikro nori padaryti? Nupiešti paprastą stulpelinę diagramą galima su 100 įvairių skirtingų programų pritaikytų specifinėms sritims, taigi, kad palengvintume sau sprendimą – suskirstykime visas vizualizacijas į 8 grupes:
- Noriu interaktyvių švieslenčių (dashboard) su aktualiais duomenimis!
- Noriu paprastos interaktyvios vizualizacijos interneto puslapiui, bet nenoriu programuoti!
- Noriu paprastos interaktyvios vizualizacijos interneto puslapiui!
- Noriu sudėtingos interaktyvios vizualizacijos interneto puslapiui kokios niekas kitas neturi!
- Noriu įtraukti vizualizaciją į savo grafinio dizaino projektą atliekamą su Illustrator!
- Noriu didelės raiškos statiškos vizualizacijos spausdinimui ar infografikui!
- Noriu duomenų meno!
- Noriu grafiko prezentacijai!
Dar vienas momentas – prieš piešiant vizualizaciją reikia apdoroti skaičius kurie bus atvaizduojami, bet kai kurios priemonės turi tokius įrankius, o kai kurios neturi. Šiame straipsnyje į skaičių apdorojimą nesigilinsiu, kol kas, jei nepaminėta kitaip, laikykime, kad turime paruoštą tinkamo formato failiuką su visais skaičiais kurių tik reikia.
1. Noriu interaktyvių švieslenčių (dashboard) su aktualiais duomenimis!
Vadinamųjų BI (Business Intelligence) programų pasirinkimas yra didžiulis. Šiomis programomis galima surinkti duomenis iš įvairiausių šaltinių (pradedant duomenų ežerais, baigiant CSV failiukais), juos apdoroti ir atvaizduoti vartotojui patrauklioje aplinkoje, su krūva galimybių interakcijoms – paspausti, filtruoti, pažymėti, naviguoti. Ir visa tai be jokių ar beveik jokių programavimo žinių.
Populiariausios yra Microsoft Power BI, Tableau ir Qlik Sense, o visas tokias programas galima suskirstyti į dvi kategorijas:
1. Tableau
Tableau įžymi savo ypatingomis grafinio vizualizavimo galiomis, nes leidžia piešti labai laisvai. Dažnai ji naudojama ne tik švieslentėms verslo įmonėse, bet ir gražiems infografikams, o jos naudotojai – tikri vizualizacijų fanatikai. Tableau yra viena tų priemonių nuo kurių verta pradėti pažindintis su duomenų vizualizacijos pasauliu, nes ji turi pilnai veikiančią nemokamą versiją su vieninteliu apribojimu – visa ką su ja sukursi – bus vieša.
2. Visos kitos
Visos kitos Business Intelligence priemonės retai kada pasižymi didelėmis grafinio dizaino galimybėmis, tačiau pagrindiniai grafikai kurių dažniausiai reikia versle – stulpeliai, linijos, taškeliai – kuriami labai paprastai. BI priemonių pagrindinės funkcijos visgi yra sudėtingi duomenų apdorojimai ir skaičiavimai, lengvai valdomi filtrai, paprastas ataskaitų platinimas, o ne mandros vizualizacijos. Jei nori rasti darbą Lietuvoje – verta pradėti nuo Power BI, nes tai pati populiariausia programa, naudotis ja galima nemokamai su vienu apribojimu – sukurtų interaktyvių švieslenčių nebus galima publikuoti internete.
Dauguma BI priemonių yra mokamos, bet Google Looker Studio, kaip ir kiti Google produktai, yra visiškai nemokama. Kitas būdas susikurti nemokamą BI sprendimą – įsidiegti R shiny į savo serverį, bet tai tinka labiau pažengusiems ir programuoti nusiteikusiems vartotojams.
Interaktyvi vizualizacija sukurta su Tableau:
Vizualizacijos sukurtos su Power BI nuotrauka:


Ypatingo paminėjimo nusipelno lietuviškas produktas – marketingo duomenų vizualizavimo platforma Whatagraph.
2. Noriu paprastos interaktyvios vizualizacijos interneto puslapiui, bet nenoriu programuoti!
Interaktyvią vizualizaciją galima sukurti ir su BI programomis tiesiog įkeliant sukurtą švieslentę į puslapį, bet tai galima padaryti ir paprasčiau, naudojant internetines duomenų vizualizavimo platformas.
Šios platformos leidžia paimti duomenis iš paprastų šaltinių (Ekselio failai, Google Sheets, CSV), sukurti interaktyvią vizualizaciją, ir įkelti ją į interneto puslapį (embed). Tas interaktyvumas kiek labiau ribotas nei BI programose ir dažniausiai apsiriboja pažymėjimu, paryškinimu ir iššokančiais langais (tooltips) su papildoma informacija. Geriausiai tinka tada, kai reikia pavienio grafiko. Svarbiausi privalumai – paprasta naudotis nuo pradžių iki galo, nereikia absoliučiai jokių prorgamavimo žinių ir yra pakankamai plačios dizaino redagavimo galimybės.
Populiariausios platformos yra Datawrapper ir Flourish. Dažniausiai šiomis platformomis naudojasi žurnalistai iliustruojantys savo straipsnius. Geras pavyzdys yra latviškas produktas Infogram, kurį mėgina prisijaukinti Verslo Žinios.
Dauguma šių platformų turi sudėtingus kainodaros mechanizmus – pavyzdžiui Infogram leidžia nemokamai sukurti tik 10 vizualizacijų, o Datawrapper leidžia kurti nemokamai jei tik turinys nekomercinis. Taigi, kiekvienas ras sau tinkamą variantą.
Infogram panaudoto Verslo Žiniose nuotrauka:


Interaktyvi projekto versija čia.
Vizualizacija sukurta su Datawrapper:
3. Noriu paprastos interaktyvios vizualizacijos interneto puslapiui!
Jei internetinės platformos netenkina, galima naudotis javascript bibliotekomis, bet tai reiškia, kad ... reikia mokėti javascript. Nors šiek tiek.
Šios bibliotekos leidžia kurti vizualizacijas naudojant „paruoštukus“ (template) ir papildomas funkcijas. Kokios yra vizualizacijos dizaino, bei interkatyvumo galimybės labai priklauso nuo bibliotekos ir nuo paties vartotojo javascript žinių.
Bibliotekų yra daug ir jų galimybės skiriasi gan stipriai, pavyzdžiui populiariausios bibliotekos Highcharts ir Plotly leidžia piešti labai įvairias vizualizacijas, Dygraphs skirta laiko eilutėms, Sigma.js – tinklams, Chart.js piešia tik paprasčiausius grafikus, ir taip toliau. Šioje rinkoje turime ir lietuvišką produktą, tai – amCharts piešiantis įvairius grafikus ir žemėlapius.
Sudėtingesnės javascript bibliotekos dažnai yra mokami, komerciniai produktai (Highcharts, FusionCharts), paprastesnės dažnai yra nemokamos.
Vizualizacija sukurta su Google Charts panaudojant šiek tiek (font-size=25px) javascript žinių ir truputėlį dedukcijos:
4. Noriu sudėtingos interaktyvios vizualizacijos interneto puslapiui kokios niekas kitas neturi!
Tarkime, kad nori išskirtinės vizualizacijos ir javascript „paruoštukai“ netinka. Tuomet yra dar viena biblioteka, kuri turbūt yra pati galingiausia duomenų vizualizavimo priemonė, tai D3.js biblioteka.
D3 reiškia Data Driven Documents, ji leidžia manipuliouti įvairiausomis geometrinėmis formomis ir interakcijomis pasitelkiant duomenis, šios bibliotekos galimybės yra neišsemiamos, tačiau ją sudėtinga ir išmokti. Jeigu nori ko nors paprasto, statiško, neinteraktyvaus – neverta, bus per daug vargo. Jeigu domina darbas išskirtinai duomenų vizualizacijų ir dizaino srityje, tuomet tikrai verta. D3 biblioteka yra visiškai nemokama, be to, specialiai jai sukurta bendradarbiavimo platforma Observable HQ.
Nadieh Bremer pagrindinai su D3 sukurtos vizualizacijos nuotrauka:


Interaktyvi projekto versija čia.
5. Noriu įtraukti vizualizaciją į savo grafinio dizaino projektą atliekamą su Illustrator!
Jei esi grafikos dizaineris ir reikia tikrai sudėtingos išskirtinės vizualizacijos, bet mokytis D3 nėra laiko, o internetinės platformos nesuteikia ko norėtum – visada gali pamėginti Tableau. Bet Tableau turi vieną bėdą – kadangi tai yra BI priemonė, eksportavimas į SVG failus - komplikuotas.
Štai čia praverčia internetinės platformos specialiai skirtos išnaudoti Illustrator galimybes. Jomis galima sukurti vizualizaciją, išeksportuoti SVG failą ir tęsti redagavimą Illustratoriuje.
Populiariausia platforma yra RAWGraphs, dar yra Datylon turinti net Illustrator įskiepį, visai gerai šiam tikslui tinka Charticulator, taip pat šias galimybes turi daugelis anksčiau minėtų interneto platformų kaip Datawrapper, bet SVG eksportavimo galimybė ten dažnai yra mokama funkcija.
Šios platformos leidžia labai paprastai suimportuoti duomenis, nupiešti vizualizaciją ir ją išeksportuoti SVG formatu. Ką su jomis daryti toliau – tik fantazijos ir Illustrator žinių klausimas. Pagrindinė bėda ta, kad pasikeitus duomenims reikia iš naujo piešti, eksportuoti ir įkėlinėti, taigi ji tinkama tik tada kai duomenys nekinta.
RAWGraphs ir Charticulator yra nemokamos priemonės, o Datylon turi sudėtingesnę kainodaros struktūrą.
Vizualizacija sukurta pasitelkiant RAWGraphs, vėliau su Inkscape (nemokamas Illustrator pakaitalas) pridėta snaigyčių, bei pasukiotas tekstas:


6. Noriu didelės raiškos statiškos vizualizacijos spausdinimui ar infografikui!
O jei nenori dirbti su Illustrator, bet nori didelės raiškos, išskirtinio dizaino vizualizacijos?
Tuomet teks mokytis šiek tiek programuoti su R programavimo kalba ir įvaldyti šios kalbos ggplot2 biblioteką. Tai yra antra galingiausia duomenų vizualizavimo priemonė po D3. Ji leidžia žaisti su geometrinėmis figūromis kaip tik širdis geidžia, taigi, iš principo piešti bet ką, joje netgi yra ir šiek tiek interaktyvumo galimybių, papildomos 3D bei animacijų bibliotekos. Visgi ggplot2 interaktyvumo galimybės nusileidžia D3, taigi geriau su ja kurti statinius vaizdus. Taip pat vizualizacijas čia pagaminti sunkiau nei su BI priemonėmis, nes viską ką nori pamayti - reikia parašyti. Tačiau patogu tai, kad pačioje R programavimo kalboje yra visos galimybės apdoroti duomenis visais žinomais būdais - nuo paprastų statistinių paskaičiavimų iki sudėtingų dirbtinio intelekto modelių.
O kaip Python bibliotekos? Na, jos galingos, bet neteko girdėti, kad kas specifiškai kurtų vizualizacijas su Python. ggplot2 naudojama vizualizacijoms piešti BBC, Economist ir kituose leidiniuose, o Python dažniau naudojamas duomenų surinkimui (scraping).
Gera žinia ta, kad ggplot2 yra visiškai nemokamas.
Su ggplot2 radialinis išdėstymas – visai nedidelis iššūkis:


O čia vizualizacijos kodas:
library(ggplot2)
Keleiviai <- data.frame(Lėktuvai = c(49.1, 21.8,21.4,53.4,78.9,76.4,144.8,125.4,70.8,86.7,28.4,17.4),
Mėnesiai = 1:12,
MėnPavadinimai = c("SAU", "VAS", "KOV", "BAL","GEG", "BIR",
"LIE", "RGP", "RGS", "SPA", "LAP", "GRD"))
Spalva = c(rep("deepskyblue4", 2), rep("limegreen",3), rep("forestgreen",3), rep("tan4", 3), "deepskyblue4")
Pasukimas = c(rep(0,6), rep(180, 6))
ggplot(Keleiviai)+
geom_point(aes(Mėnesiai, Lėktuvai), shape=21, fill="white", colour=Spalva, size=8, stroke=3)+
geom_spoke(aes(x = Mėnesiai, y=0, radius = Lėktuvai-16), angle = pi/2, size=3, colour=Spalva, lineend="round")+
geom_text(aes(Mėnesiai, Lėktuvai, label=Lėktuvai), size=2, colour=Spalva)+
geom_text(aes(Mėnesiai, -20, label=MėnPavadinimai, angle=(90-30*Mėnesiai)+15+Pasukimas),
size=2, colour=Spalva)+
scale_y_continuous(limits = c(-50,145))+
scale_x_discrete(expand = expansion(add=0.5))+
coord_polar()+
theme_void()+ theme(plot.background = element_rect(fill = "white", color = "white"))+
labs(title = "Oro transporto keleiviai Lietuvoje, 2022 m., tūkst.")
7. Noriu duomenų meno!
Duomenų meną galima suskirstyti į dvi grupes:
1. Meniškas duomenų atvaizdavimas. Šiuo būdu menininkas siekia neįprastu, išskirtiniu, eksperimentiniu, kūrybiniu būdu atvaizduoti duomenis - pavyzdžiui paversti akcijų biržos kainų kitimą garso instaliacija, arba tai, kas galėtų būti įprastinis grafikas - paversti estetiškai patraukliu vizualiniu kūriniu. (Dear Data yra knyga kaip tik apie tai, kartais Information is Beautiful projektas mėgina kažką panašaus padaryti). Kokių duomenų vizualizavimo priemonių reiktų tokiems stebuklams - standartinio atsakymo nėra - duomenų meną galima ir teptuku nutapyti!
Stefanie Posavec sukurta vizualizacija atrodo kaip tiesiog gražus paveiksliukas:


2. Generatyvusis menas (generative art). Tai yra meno kūrinys sugeneruotas algoritmo. Tokiam kūriniui sukurti reikalinga priemonė, kuri galėtų ir atlikti sudėtingus skaičiavimus, ir turėtų galimybes piešti sudėtingus piešinius. Turbūt tinkamiausia priemonė yra jau minėtasis ggplot2 su šiek tiek pagalbos iš ggforce, tačiau menas yra menas - turint pakankamai kūrybiškumo tiks ir Ekselio skaičiuoklė. (Beje - dirbtinio intelekto generuojamas menas į šią kategoriją nepatenka – čia visai atskira sritis.)
Thomas Lin Pedersen kūrinys sukurtas su ggplot2:


Yra ir daugiau - galima net nusipirkti.
8. Noriu grafiko prezentacijai!
Reikia, būtinai reikia tai pabrėžti, akcentuoti ir užtvirtinti – Ekselis yra labai galinga duomenų vizualizavimo priemonė. Jis neturi jokių interaktyvumo galimybių, bet jei nori statiško vaizdo – mažai kas gali pasiūlyti tokį lankstumą ir paprastumą kaip Ekselis!
Kai vaizdinė medžiaga kuriama tik vienam parodymui, duomenų apimtis nedidelė, skaičiavimai nesudėtingi, o laiko suprogramuoti gudresnių sprendimų nėra – Ekselis nepakeičiamas. Nors standartinių duomenų vizualizacijų pasirinkimas jame gana ribotas, tačiau su šiek tiek „palankstymo“ greičiau atsiremsi į fantazijos, laiko ar auditorijos gebėjimo suprasti ko ten pripiešei ribas, nei paties Ekselio.
Ekselio problema yra duomenų atnaujinimas - jei tą pačią prezentaciją darai nuolatos – tikrai verta pasvarstyti apie BI priemones.
Kita problema yra vizualizacijų kūrimo greitis - norint sukurti tikrai gražias, švarias, stilingas vizualizacijas tenka padirbėti nustatinėjant kiekvienos linijos ar taškelio spalvą, bet čia į pagalba ateina specialiai grafikams pritaikyti PowerPoint įskiepiai piešiantys grafikus tiesiai iš Ekselio duomenų. Populiariausias turbūt yra Think-Cell leidžiantis labai greitai kurti prezentacijas ir mėgstamas verslo konsultatų, taip pat vertas paminėjimo Grunt leidžiantis PowerPointe kurti ne tik grafikus, bet ir labai išvaizdžias lenteles. Šios priemonės, labai palengvina ir prezentacijose esančių grafikų atnaujinimą, pakanka kelių paspaudimų ir atsinaujina visos skaidrės.
Ekselio įskiepiai visada yra mokami, kaip ir pats Ekselis. Nemokamos alternatyvos yra LibreOffice bei Google Sheets, tačiau pastarosios duomenų vizualizavimo galimybės labai silpnos.
Duomenų vizualizacija sukurta su Ekseliu – stadartiniame meniu tokios vizualizacijos nėra:


Išbandyk!
Svarbiausia yra pabandyti – šiame straipsnyje išvardintos duomenų vizualizavimo priemonės yra tik rekomendacijos nuo ko pradėti – galbūt „populiariausia“ vadinama priemonė nepatiks, galbūt sužavės programavimo galimybės, kad net užsimanysi išmokti javascripto, o galbūt suprasi, kad viskam ką nori padaryti pakanka Ekselio.
Taip pat svarbu ušfiksuoti laiką kada šis tekstas buvo parašytas (2022 m. pabaigoje) nes jis pradės senti tuojau po paskelbimo – ims ir atsiras kokia nors nauja priemonė (VizSweet, Vizzu...), arba senoji įgis tokių naujų supergalių, kad aplenks įsitvirtinusius senbuvius. Tiesiog pradėk nuo ko nors, vėliau suprasi kur judėti.
Jei esi jau pažengęs duomenų vizualizuotojas galbūt žinai dar daugiau priemonių grafikams piešti – Figma įskiepiai, Vega, JMP, Circos, Matlab ... – tai šaunu! Bet visgi manau, kad pradedančiam piešėjui jau suteikiau pakankamai informacijos, jei norės gilintis, tikrai atras ir visas kitas priemones!
Kviečiu skaityti kitą mano straipsnį: 11 svarbiausių duomenų vizualizavimo principų.
Kviečiu prisijungti prie Data Visualization Lithuania grupės Linkedine arba Facebooke.
Jei nori sužinoti daugiau apie duomenų vizualizaciją ar reikia pagalbos šioje srityje - susisiekime!