Yllättävän usein on tarve visualisoida lukumääriä, lukarvoja tai tiloja oman kuvan päälle. Esimerkiksi

  • mitkä junan istumapaikoista ovat varatuimpia
  • mitkä salin istumapaikat ovat varattuja missäkin näytöksessä
  • mitkä ovat lämpötilat toimistorakennuksen eri huoneissa
  • mikä on varastohallin eri alueiden varastoarvo

Näitä ei voi Power BI:llä suoraan toteuttaa, mutta onneksi Power BI:ssä voi käyttää räätälöityjä visualisointeja (Custom Visuals).  Omia karttapohjia pääsee kätevästi hyödyntämään OKViz:in Synoptic panelilla.

Esimerkki – Äänestystuloksen visualisointi

Havainnollinen tapa esittää eduskunnan äänestystuloksia on esittää ne istuntosalin istumakartan päällä. Kansanedustajat on valmiiksi niputettu puolueittain ja kustakin esitetään nimen lisäksi valokuva. Tähän päälle pitäisi vielä taikoa mitä kukin kansanedustaja on äänestänyt.

Kuulostaa hankalalta, mutta ei itseasiassa ole.

Äänestysdatan hakeminen

Äänestysdata on saatavilla eduskunnan sivuilta avoimen rajapinnan kautta. Haetaan istunnon 37605 äänestystulokset käyttäen seuraavaa url-osoitetta:  http://avoindata.eduskunta.fi/api/v1/tables/SaliDBAanestysEdustaja/rows?columnName=AanestysId&columnValue=37605&page=0&perPage=100

Käydään datan lataaminen yksityiskohtaisemmin läpi, sillä tällä kertaa varsinaiseen dataan ei pääse kiinni aivan suoraan.

Get Data – Web ja käytämällä ylläolevaa osoitetta päästään hieman hämmentävän näköiseen tilaan.

eduskunta_step1

Missä se data on? Klikataan rowData:n kohdalla olevaa List-linkkiä.

eduskunta_step2.png

Nyt jokaisen linkin takana on oma taulunsa jossa on yhden äänestäjän tiedot. Haluan yhdistää tämän kaiken yhteen tauluun, joten painan vasemman yläkulman To Table -painiketta.

eduskunta_step3.png

Ei isompia näkyviä muutoksia, mutta nyt on mahdollista Column1-otsikon oikealla puolella olevasta painikeesta purkaa listan arvot tähän soluun (Extract Values). Käytetään erottimena kaksoispistettä.

eduskunta_step4

Nyt haluttu data on yhdessä sarakkeessa. Seuravaksi jaetaan sarake useaksi sarakkeeksi käyttäen erottimena kaksoispistettä. Split column -komento löytyy hiiren oikealla sekä näytön yläosan työkaluriviltä.

eduskunta_step5.png

Prosessissa katosi sarakkeiden otsikot, joten ne pitää vielä lisätä käsin.

eduskunta_step6.png

Hyvältä näyttää!

Kahden kyselyn yhdistäminen

Valitettavasti käytetty kysely palauttaa maksimissaan 100 riviä. Tämä ei riitä vaan haluamme lisätä tauluumme vielä seuraavat 100 riviä. Ensimmäisen 100 rivin kanssa piti suorittaa useita työvaiheita, mutta nyt päästään oleellisesti helpommalla. Power BI ei muokkaa kyselyvaiheessa varsinaista aineistoa vaan rakentaa Power Query lauseita. Samat lauseet voidaan ajaa samanrakenteiseen aineistoon uudestaan.

Tehdää alkuperäisestä kyselystä kopio (Kyselyn päältä hiiren oikea ja Duplicate).

eduskunta_duplicate_queries.png

Uudessa kyselyssä on valmiina kaikki vaiheet (näytön oikea reuna: Applied Steps) joita voi myös muokata. Käydään muokkaamassa Sourcen kohdalta alkuperäistä urlia ja vaihdetaan sen tilalle: http://avoindata.eduskunta.fi/api/v1/tables/SaliDBAanestysEdustaja/rows?columnName=AanestysId&columnValue=37605&page=1&perPage=100

eduskunta_change_query_source.png

Yhdistetään lopuksi kaksi kyselyä jotta päästään tekemään visualisointia. Yhdistäminen tehdään Append-toiminnolla. Tällä kertaa luodaan yhdistämisen pohjalta uusi kysely joka sisältää kaikki kahdella kyselyllä hakemaamme 199 riviä.

 

Varsinaiseen tietomalliin haluan ladata vain yhdistetyn tietojoukon. Käydään ottamassa muista kyselyistä ruksi pois Enable Load -kohdasta, jolloin niitä ei ladata tietomalliin.

eduskunta_disable_load.png

Äänestysvaihtoehdot

Kansanedustajien äänet ovat aineistossamme arvoiltaan Ei, Jaa sekä Poissa. Käyttämämme visualisointi vaatii kuitenkin numeerisia arvoja, joten tehdään taulukko jossa kerrotaan miten äänet vastaavat numeroarvoja.

eduskunta_aanestys.png

Kyselyt ovat nyt valmiit. Ladataan ne tietomalliin (Apply & Close). Valmis malli näyttää tältä.

eduskunta_relaatiot.png

Visualisointi

Haluan tehdä visualisoinnin tämän kuvan päälle:

2016_kansanedustajajuliste__27092016

Käytän siihen Synoptic Panelia jonka käytöstä löytyy hyvä blogikirjotus.

Kuvasta pitää ensin tehdä SVG-tiedosto johon on kuvattu käytettävät alueet ja niiden tunnisteet. Tähän käytän Synoptic Designeria (https://synoptic.design/).

Lataan työkaluun pohjana käyttämäni kuvan jonka jälkeen määrittelen alueet joita käytän visualisoinnissa (kuvassa keltaiset laatikot).

Eduskunta_map_1.png

 

Alueita voi määritellä kuvankäsittelyohjelmista tutun taikasauvan savulla. Taikasauvalla aluetta klikkaamalla se tunnistetaan ja rajataan automattisesti. Näksyttelin esimerkkini alueista 3/4 taikasauvalla. Loput jouduin rajaamaan käsin.

Sen verran alueiden määrittelyssä on työtä että tällä kertaa visualisoin ainoastaan keskustan ja rkp:n äänet.

Kuvan alueiden ja varsinaisen datan yhdistäminen tehdään alueiden (Areas) nimillä.

eduskunta_map_2

Kuvassa keltaisena korostetulle alueelle on annettu nimi 800 joka on Tapani Töllin EdustajaNumero. Kyseinen alue sijaitsee kuvassa Tapani Töllin päällä.

Kun kaikki alueet on nimetty voidaan SVG-kuva tallentaa Export to Power BI -kommenolla.

Power BI desktopiin pitää tuoda käyttämämme custom visualisointikontrolli. Voit ladata sen täältä.

eduskunta_add_custom_visualization.png

Lisätään visualisointiin Synoptic Panel ja asetetaan

  • Category = EdustajaHenkiloNumero
  • Measure = Arvo (äänestysten arvot -aputaulusta)

Vasta tämän jälkeen voidaan asettaa visualisoinnin pohjana käytettävä SGV-tiedosto.

eduskunta_add_map.png

Kartta saadan näkyviin, mutta kaikki arvot näkyvät samoina sinivihreinä laatikoina.

eduskunta_map_!.png

Määritellään vielä eri äänien värit. Valitaan oikea visualisointi ja maalitelan takaa löytyy ulkoasun asetukset. States-kohdassa märitellään äänestystuolosten arvoiksi

  • Ei = punainen
  • Poissa = keltainen
  • Jaa = vihreä

eduskunta_data_states.png

Jolloin annetut äänet näkyvät havainnollisesti väreinä henkilön kohdalla.

eduskunta_results.png

Lisätään vielä muutama peruskäppyrä ja olemme valmiit.

eduskunta_final.png

Voit tutusta visualisointiin täältä.

Olisi hienoa jos eduskunnan avoimen datan rajapinnasta saisi yhdellä kyselyllä ulos koko vuoden äänestysten tulokset. Silloin tätä samaa visualisointia voisi käyttää niiden kaikkien visualisoimiseen. Lisäisi vain suodattimen jolla valitaan minkä äänestyksen tulosta haluaa tarkastella.

Kuvat: https://www.eduskunta.fi/FI/lakiensaataminen/taysistunnon_verkkolahetykset/Istumajarjestys/Sivut/default.aspx

Tämä kirjoitus on osa laajempaa sarjaa jossa käyn läpi Office 365:n työkaluja. Mistä niissä on kyse ja miten niitä voisi hyödyntää.