Tijden combineren: een heatmap met twee tijdsassen

In elke organisatie gaat het over groei, ontwikkelingen, trends. Zo kun je de omzet in verschillende jaren met elkaar vergelijken om te zien of je bedrijf groeit. Vervolgens zou je kunnen onderzoeken of er verschillen in omzet zijn tussen bepaalde maanden in het jaar (bijvoorbeeld als ijsjesverkoper). Dit wordt ook wel een seizoenspatroon of seasonality genoemd, ook als het gaat om dagen in de week of uren op de dag. Maar hoe vergelijk je verschillende niveaus seizoenspatronen in Tableau?

In dit dashboard naar aanleiding van de Makeover Monday 2021w31 dataset over fietsongelukken in London laat ik twee seizoenspatronen zien: het aantal ongelukken per maand (door de jaren heen) en het aantal ongelukken per uur van de dag. Zo is in de afbeelding hieronder duidelijk te zien dat er in de zomer meer fietsongelukken zijn dan in de winter (misschien omdat er meer mensen op de fiets zitten?) en dat de meeste ongelukken gebeuren tijdens de ochtend- en avondspits (omdat er dan meer mensen onderweg zijn, wellicht?). 

Op beide grafieken is een verband te zien tussen het aantal ongelukken en de periode in het jaar of op de dag. Dit is op zichzelf al interessante informatie. Maar wat je niet kunt zien is een eventueel verband tussen die twee effecten. Misschien vinden de 4000 ongelukken in maart om een of andere reden allemaal tussen 19:00 en 20:00 uur plaats. Of zijn er in juli veel meer ongelukken in de ochtend- dan in de avondspits, terwijl het in december andersom is. Hoe zou je hier achter kunnen komen?

Optie 1: gebruik een filter

De eerste manier is om beide visuals als filter te gebruiken. Door in je dashboard op een visual te klikken en het trechter-symbool aan te vinken, wordt het mogelijk om in een visual een waarde te selecteren, en deze vervolgens als filter te gebruiken voor de andere visuals. Als we bijvoorbeeld augustus aanklikken, zien we dat er meer ongelukken gebeuren in de avondspits dan in de ochtendspits, terwijl het door het jaar heen andersom is.

Het voordeel van deze optie is dat je alle visualisaties met elkaar laat communiceren, en je specifieke relaties scherp in beeld krijgt. Het nadeel is dat je steeds weer waarden aan en uit moet klikken om een beeld te krijgen. Je krijgt dus geen mooi overzicht.

Optie 2: maak een heatmap

De tweede methode lost dat op een visuele manier op en geeft direct een totaalbeeld: een (kalender) heatmap. In plaats van het filteren op een enkele waarde, zet je de maanden en uren in één visualisatie, met de meetwaarden als kleurgradatie. Hieronder zie je de oorspronkelijke visual met het aantal ongelukken (in rows) per uur (in columns). Het aantal ongelukken komt ook terug als kleur in het marks-veld.

Laten we deze visual omtoveren tot heatmap! Als we het groene veld met het aantal ongelukken verwijderen uit de rows-regel, en daar opnieuw een (blauw) datumveld inslepen, vullen we hier nu maand in. Vervolgens veranderen we het markstype van bar naar square. En zo hebben we ineens een heatmap waarop je uren en maanden tegen elkaar afzet voor wat betreft het aantal ongelukken, dat uitgedrukt wordt in licht- tot donkerrood.

Een heatmap met het aantal fietsongelukken per uur en per maand

Door de kleurverschillen zien we dat er in de zomermaanden midden op de dag meer ongelukken gebeuren dat in de winter, en dat er in augustus in de ochtendspits minder ongelukken gebeuren dan in juli en september. Dat is het voordeel van een heatmap: je ziet meteen het complete plaatje. Het nadeel is dat de precieze verschillen niet heel duidelijk zijn, zeker als de velden niet naast elkaar liggen. De keuze is dus aan jou. Wil je duidelijke onderlinge verschillen, gebruik dan een filter. Zie je liever eerst het totaalplaatje? Creëer dan een heatmap. Succes!


Ik hoop dat je dit blog behulpzaam vond. Meer weten over hoe je tijd kunt inzetten in je visualisaties? Lees dan ook dit verhaal eens, over hoe je DATE-velden als continue en discrete waarden kunt gebruiken.

Heb je meer hulp of uitleg nodig? Aarzel dan niet om contact met ons op te nemen voor onze workshops en trainingen of huur een consultant in.


Data: Cyclestreets. Inspiratie: Visual Vocabulary, door Andy Kriebel.

Screenshots: Eigen dashboard op Tableau Public.