Turinys

Įvadas

Tai yra duomenų vizualizavimo modulio penktojo laboratorinio darbo aprašas, rašytas Vilniaus universiteto matematikos ir informatikos fakulteto antrojo kurso studento Roko Karpavičiaus. Šiame darbe yra pateiktas interaktyvus grafikas bei išsamus jo aprašymas. Grafike yra pavaizduotas mirčių skaičius keliuose (ES) 2000 - 2019 m. Šiam darbui atlikti buvo pasitelkta collapsibleTree R biblioteka.

Tikslas

Turint duomenų rinkinį apie mirčių skaičių keliuose (ES) 2000 - 2019 m., pateikti interaktyvų grafiką bei komentarus apie jį.

Uždaviniai

  1. Pateikti komentarus kaip buvo kuriamas interaktyvus grafikas.
  2. Išsamiai aprašyti kodą.
  3. Pateikti interaktyvų grafiką.
  4. Pateikti išvadas.

Tiriamojo darbo pagrindinė dalis

Pasirinkti duomenys

Duomenys buvo paimti iš Europos statistikos portalo https://ec.europa.eu/. Šiame duomenų rinkinyje turime informaciją apie mirčių skaičių Europos Sąjungos šalyse nuo 2000 iki 2019 metų. Jame yra išskirtas bendras mirčių skaičius, mirčių skaičius greitkliuose, miesto bei kaimo keliuose. Svarbu paminėti, jog šiame darbe buvo pasirinktas bendras mirčių skaičius, t.y. mirčių skaičius greitkeliuose, miesto bei kaimo keliuose sudėjus.

Bibliotekos

library(readxl)
library(tidyverse)
library(collapsibleTree)

Visų pirmiausia, pradedame nuo tam tikrų R bibliotekų. Šiame darbe buvo naudotos readxl, kuri skirta duomenų nuskaitymui iš Excel failo, tidyverse, kuri skirta darbui su duomenimis bei collapsibleTree bibliotekos, iš kurių pastaroji yra skirta interaktyvaus grafiko braižymui.

Darbas su duomenimis

dt <- read_excel("mirtysKeliuose.xlsx", col_names = TRUE)
mapdata <- read_excel("mapsData.xlsx", col_names = TRUE)

mapdata <- left_join(mapdata, dt, by = "region")
mapdata <- mapdata %>% filter(!is.na(mapdata$mirtys))

Pirmu dviejų kodo eilučių pagalba yra nuskaitomi duomenys, kurie vėliau bus naudojami “piešiant” patį grafiką. Taigi, į kintamąjį dt yra nuskaitomi duomenys apie mirčių skaičių Europos Sąjungos šalyse nuo 2000 iki 2019 metų, na, o kintamajame mapdata turime visas pasaulio šalis. Pastarieji duomenys yra pritaikyti norint vaizduoti žemėlapius, tačiau jie taip pat puikiai gali pasitarnauti ir darant tokio tipo grafiką. Verta paminėti, jog duomenys mapdata egzistuoja pačiame R, taigi jų niekur ieškoti nereikėjo. Buvo pasitelkta viena specifinė funkcija, kuri leido šiuos duomenis nukopijuoti ir perkelti į Excel failą, tam, jog būtų patogiau atlikti kitus veiksmus.

Nuskaičius šiuos duomenis, juos reikia kažkaip sujungti į vieną. Tokiam darbui į pagalbą pasitelkiame funkciją left join, kuri prie mapdata duomenų prijungia duomenų rinkinį dt. Taigi, dabar turime du duomenų rinkinius sujungtus į vieną.

Kadangi mapdata duomenyse yra visos pasaulio šalys, tai su komanda filter pašaliname visas tuščias reikšmes, prie kurių nebuvo priskirtos reikšmės iš duomenų rinkinio dt. Tokiu būdu sutvarkome duomenis, kad jose liktų tik ES šalys.

mapdata <- mapdata %>%
  mutate(region = recode(region, Finland = "Suomija", Austria = "Austrija", Belgium = "Belgija", Bulgaria = "Bulgarija", 
                         Switzerland = "Šveicarija", Cyprus = "Kipras", Czech = "Čekija", Germany = "Vokietija",
                         Denmark = "Danija", Spain = "Ispanija", Estonia = "Estija", France = "Prancūzija",
                         UK = "Anglija", Greece = "Graikija", Croatia = "Kroatija", Hungary = "Vengrija",
                         Ireland = "Airija", Iceland = "Islandija", Italy = "Italija", 
                         Liechtenstein = "Lichtenšteinas",
                         Lithuania = "Lietuva", Luxembourg = "Liuksemburgas", Latvia = "Latvija", 
                         Malta = "Malta",
                         Netherlands = "Olandija", Norway = "Norvegija", Poland = "Lenkija", 
                         Portugal = "Portugalija",
                         Romania = "Rumunija", Slovakia = "Slovakija", Slovenia = "Slovėnija", 
                         Sweden = "Švedija",
                         Turkey = "Turkija"))

Taip pat, svarbu pakeisti ES šalių pavadinimus iš angliškų į lietuviškus. Taigi, tam pasitelkiame tidyverse biblioteką bei funkciją mutate, kurių pagalba pakeičiame region (liet. regiono) stulpelio reikšmių pavadinimus.

Interaktyvaus grafiko vizualizacija

grafikas  <- collapsibleTree(
  mapdata,
  hierarchy = c("region", "mirtys"),
  fill = "darkkhaki",
  root = "Mirčių skaičius keliuose (ES) 2000 - 2019 m.",
  zoomable = TRUE
)

grafikas

Galiausiai priėjome prie paties grafiko brėžimo. Šiuo atveju, buvo pasitelkta collapsibleTree R biblioteka bei taip pat pavadinta šios bibliotekos funkcija collapsibleTree. Į funkcijos parametrus siunčiamas pats duomenų rinkinys, tuomet pasirenkama hierarchija, pagal kurią bus išdėstytas grafikas. Šiuo atveju turime, jog pirmiausia eina regionas ir tuomet iš regiono “išeina” mirčių skaičius. Toliau seka elementarūs parametrai, tokie kaip šrifto dydis, “burbuliukų” spalva bei esminio (pagrindinio) “burbulo”, iš kurio išeina visa kita informacija, pavadinimas. Galiausiai, parametras zoomable leidžia didinti/mažinti patį grafiką.

Norint naviguoti grafike, galima naudoti pelės ratuką tam, jog mažinti arba didinti patį grafiką. Toliau, paspaudus kairįjį pelės klavišą ant grafiko ir jį laikant, galime judinti grafiką į visas puses, prisitaikyti kaip patogiau. Paspaudus ant balto “burbulo”, visas grafikas susitraukia, dar kartą paspaudus ant tos pačios vietos, jis išsiplėčia. Tokiu pačiu principu galima pasižiūrėti ir mirčių skaičių kiekvienai šaliai. Paprasčiausiai kairiuoju pelės klavišu spaudžiame ant chaki spalvos burbulo. Paspaudus - matome mirčių skaičių, paspaudus dar kartą, informacija sugrįžta atgal.

Išvados

Priėjome prie svarbiausios darbo dalies - išvadų. Taigi, iš arti apžvelgę šio interaktyvaus grafiko brėžimo procesą, galima būtų pasakyti, jog jis tikrai nebuvo sudėtingas. Pirmiausia nuskaitėme duomenis, juos sutvarkėme, pakeitėme vieno stulpelio reikšmių pavadinimus ir praktiškai darbas buvo baigtas. Viskas kas liko, tai buvo tik parametrų surašymas į collapsibleTree funkciją, kuri vėliau atliko visą darbą už mus. Nubrėžtą grafiką lengva skaityti, jį galima judinti kaip tik panorėjus, taip pat galima didinti/mažinti pagal skaitytojo norus. Visumoje, tai yra puiki funkcija norint nesunkiai susistemizuoti duomenis bei juos pateikti kiek išskirtinesniu būdu.

Šaltiniai