WELKE VISUALISATIETOOL
ZOU JIJ
ADVISEREN
? door Richard Sanchez, visual analytics consultant bij Kadenza
Lees het volledige artikel en andere blogs op www.playitsmart.nl/blog
‘Welke visualisatietool moet ik kiezen?’ Die vraag is voor veel bedrijven actueel en erg lastig te beantwoorden, ook als hiervoor externe BI-dienstverleners worden geraadpleegd. De meeste BI-clubs zijn namelijk vaak verre van objectief, omdat ze zichzelf hebben gespecialiseerd in één visualisatietool. Bij wijze van experiment heb ik daarom eenzelfde visualisatievraag beantwoord met diverse gangbare tools - Microsoft Power BI, QlikView, QlikSense en Tableau - om er achter te komen welke tool het beste scoort qua visualisatiemogelijkheden, snelheid en gebruiksgemak. Zie hier het resultaat.
DE VISUALISATIEVRAAG
Stel, een salesmanager klopt bij jou aan als visual analytics specialist. Hij wil aan de hand van een Excel-sheet drie zaken visualiseren en beoordelen: 1. Wat zijn mijn topklanten qua omzet en winst? 2. Hoe doen mijn verschillende productcategorieën het ten opzichte van de voorgaande jaren? Hij wil daarbij zelf elke categorie een eigen kleur kunnen geven in verband met de huisstijl. 3. Op welke producten draait zijn organisatie de meeste omzet en wat is per product het winstpercentage? Met welk van de vier genoemde tools kan de salesmanager zijn vraag het best beantwoorden? Voor een objectief antwoord ga ik hieronder de drie vragen van de salesmanager stap voor stap beantwoorden met achtereenvolgens Microsoft BI, QlikView, QlikSense en Tableau.
HET ANTWOORD VAN MICROSOFT POWER BI
Om een Excel-sheet in te laden, moeten we aangeven dat de tool moet koppelen met een Excel-bron. Nadat we het bestand hebben geselecteerd, geven we in onderstaand scherm aan welk tabblad we willen gebruiken. In dit geval pakken we tabblad ‘Orders’. We zien aan de rechterkant een voorbeeld van de geselecteerde dataset, wat handig is omdat we dan gemakkelijk kunnen zien of het de juiste is. Als we niets hoeven aan te passen qua data hoeven we alleen op de knop ‘Laden’ te klikken, zodat alle data beschikbaar zijn voor het maken van grafieken.
In het volgende scherm selecteren we aan de rechterkant de gewenste velden voor de eerste grafiek. De eerste deelvraag vraagt om een grafiek waarin omzet, winst en klanten terugkomen. Zodra we twee meetwaarden selecteren, geeft het programma standaard twee balken naast elkaar per klant, maar persoonlijk vind ik het mooier om de winst niet als extra balk te tonen maar als kleurvulling van de omzetbalk. We slepen hiervoor het veld ‘Winst’ naar de kleurverzadigingsoptie. Daarna wisselen we van grafiekvorm om hem staand te krijgen. Het resultaat mag er zijn:
Voor de tweede deelvraag gaan we een nieuwe grafiek maken en ook hier selecteren we de benodigde velden. De tool maakt van alle losse datumvelden automatisch een optelling naar jaren en dat is een pluspunt. Het is belangrijk dat je weet wat er op ‘AS’ moet worden gesleept en wat op ‘Legenda’. De tool helpt je hier helaas niet automatisch mee. Om de kleur per lijn aan te passen, moeten we op het penceeltje te klikken. Via gegevenskleuren kun je dan per productcategorie een afwijkende kleur kiezen.
Tot slot de derde deelvraag en ook daarvoor maken we een nieuwe grafiek. We stuiten nu wel op een probleem omdat er geen procentueel veld in de dataset zit. Dit kunnen we als volgt oplossen. Door met de rechtermuisknop op de velden te klikken verschijnt de volgende pop-up:
Selecteer hier de optie ‘Nieuwe meting’. In het scherm kun je nu de gewenste formule typen:
Nadat we deze berekening een naam hebben gegeven, kunnen we hem gebruiken in een grafiek.
Als we nu de bovenste balk selecteren, zien we beide meetwaarden verschijnen:
HET ANTWOORD VAN QLIKVIEW
We gaan uiteraard uit van dezelfde Excel-sheet. Om die in te laden, moeten we linksboven op het ‘SCRIPT bewerken’-icoontje klikken. Onderin het vervolgscherm moeten we kiezen voor de optie ‘Tabelbestanden’ en vervolgens het Excel-bestand selecteren. Wanneer dit is gedaan komt de volgende pop-up tevoorschijn waarin we het tabblad ‘Orders’ moeten selecteren en vervolgens aangeven dat de labels ingevoegd zijn. We zien hier ook de inhoud van het tabblad zodat we weten of we in het goede tabblad zitten.
Tot slot klikken we op ‘Voltooien’ en dienen we op de knop ‘Opnieuw laden’ te klikken om alles in-memory te laden.
Nu alle data zijn ingeladen, is het tijd om de eerste vraag van de salesmanager te gaan beantwoorden. We klikken hiervoor met de rechtermuisknop op het nog kale canvas en selecteren ‘Nieuw object - Grafiek’: We geven een vensternaam en selecteren de grafieksoort:
In het volgende scherm selecteren we de dimensies die we willen gebruiken in de grafiek:
Daarna moeten we de gewenste meetwaarde selecteren én aangeven welk aggregatieniveau we willen hanteren:
Vervolgens willen we de klanten met de hoogste omzet bovenaan. Hiervoor gaan we naar het tabblad ‘Sorteren’. We selecteren ‘Uitdrukking – Aflopend’ en gebruiken dezelfde formule als hiervoor.
Tot slot gaan we naar het tabblad ‘Stijl’ waar we kunnen aangeven hoe de grafiek er uit moet zien. We kiezen voor een liggende staafdiagram:
We zijn nu klaar met de grafiek en zien logischerwijs ook hier dat klant ‘Gordon Brandt’ de meeste omzet heeft opgeleverd.
Om de tweede vraag te beantwoorden gaan we een nieuwe grafiek maken en volgen we dezelfde stappen. We kiezen nu echter de optie ‘Lijngrafiek’.
We selecteren opnieuw de gewenste velden en voeren dezelfde formule in bij ‘Uitdrukking bewerken’:
We gaan de sortering en stijl hier niet aanpassen, omdat dit nu niet relevant is. Wat we na het klikken op ‘Voltooien’ te zien krijgen, geeft helaas niet het gewenste resultaat:
De reden hiervoor is dat QlikView alle dagen als losse momenten behandelt. QlikView snapt niet automatisch dat dit opgeteld moet worden naar jaren, dus moeten we een nieuw berekend veld maken dat hiervoor zorgt. Om een berekend datumveld te maken gaan we terug naar het script bewerkingsscherm en moeten we de volgende syntax invoeren: year(Orderdatum). Vervolgens moeten we alle data opnieuw inladen zodat dit nieuwe veld in de grafiek kan worden gebruikt.
Vervolgens dienen we het nieuwe veld in de grafiekeigenschappen toe te voegen en het andere veld, genaamd ‘Orderdatum’ eruit te halen:
Als we nu op ‘Voltooien’ klikken, zien we de juiste grafiek ontstaan:
Voor de derde deelvraag maken we een nieuwe grafiek waarbij we als dimensie het veld ‘Productnaam’ gebruiken en voeren de volgende formule in bij ‘Uitdrukking bewerken’:
Vervolgens gaan we via het tabblad Sorteren wederom sorteren op een uitdrukking:
Tot slot willen we net, als bij het vorige voorbeeld, dat de kleur aangeeft hoe het zit met het winstpercentage. Dit is niet zo eenvoudig binnen QlikView en het vergt een aantal tussenstappen. Allereerst dien je op het plusje te klikken voor je expressie en ‘Achtergrond’ te selecteren. In het definitieveld moet je vervolgens via ‘Bestand’ op ‘Wizard Kleurmenger’ klikken.
QlikView genereert dan een lange formule die er als volgt uitziet: ColorMix1 ((1+Sign(2*(sum(Winst)/sum(Orderprijs)-RangeMin (top(total sum(Winst)/ sum(Orderprijs),1,NoOfRows(total))))/(RangeMax (top(total sum(Winst)/ sum(Orderprijs),1,NoOfRows(total)))-RangeMin (top(total sum(Winst)/ sum(Orderprijs),1,NoOfRows(total))))-1)*Sqrt(Fabs((2*(sum(Winst)/sum(Orderprijs)RangeMin (top(total sum(Winst)/sum(Orderprijs),1,NoOfRows(total))))/(RangeMax (top(total sum(Winst)/sum(Orderprijs),1,NoOfRows(total)))-RangeMin (top(total sum(Winst)/ sum(Orderprijs),1,NoOfRows(total))))-1))))/2, ARGB(255, 255, 0, 0), ARGB(255, 0, 255, 0))
Het eindresultaat zal er als volgt uit zien. Ook hier is duidelijk te zien dat ‘Global Troy’ de meeste omzet brengt en qua kleur zien we ook dat het goed zit qua winstpercentage
Als we daadwerkelijk het winstpercentage als waarde willen zien zou dit kunnen door een nieuwe expressie aan te maken met de volgende formule:
HET ANTWOORD VAN QLIKSENSE
Ook hier selecteren we het tabblad ‘Orders’. Net als in de vorige voorbeelden zien we meteen de inhoud van het tabblad zodat we geen vergissing kunnen maken:
Na het laden en voltooien kunnen we beginnen met het beantwoorden van de eerste vraag. We klikken op ‘Staafdiagram’ en slepen dit naar het lege canvas:
In het volgende scherm moeten we de velden selecteren die we in de grafiek wensen:
Vervolgens selecteren we ‘Orderprijs’ als meting en geven daarbij aan dat die als ‘SUM’ geaggregeerd moet worden:
Via de optie ‘Uiterlijk – Presentatie’ kunnen we switchen van verticaal naar horizontaal:
We selecteren ‘Klantnaam’ als dimensie:
Het eindresultaat ziet er als volgt uit en uiteraard is ‘Gordon Brandt’ weer de klant met de meeste omzet:
Voor het antwoord op de tweede vraag moeten we een tweede grafiek maken. We klikken nu op ‘Lijndiagram’ en slepen dit naar het lege canvas.
In het volgende scherm moeten we de velden selecteren die we in de grafiek wensen. We kiezen ‘Orderdatum’ als dimensie en selecteren ‘Orderprijs’ als meting:
Als extra dimensie selecteren we dus zoals gezegd de Productcategorie. Helaas is het voorlopige eindresultaat net als bij QlikView niet goed omdat ook QlikSense alle dagen als losse momenten behandelt. De tool snapt dus ook niet automatisch dat dit opgeteld moet worden naar jaren. Daarvoor moeten we dus een kleine aanpassing maken.
Aangezien we ook een tweede dimensie willen gebruiken, namelijk ‘Productcategorie’, moeten we die handmatig toevoegen. Aan de rechterkant van het scherm kunnen we dit regelen via ‘Gegevens toevoegen’. We selecteren hier ‘Dimensie’.
Er zijn meer manier om dit te doen. De meest eenvoudige manier is om rechtsboven onder ‘Dimensies’ achter ‘Orderdatum’ te klikken op het FX-symbool. We kunnen daar de expressie ‘Orderdatum’ aanpassen naar ‘year(Orderdatum)’.
Het eindresultaat zal er dan als volgt uitzien:
Ook voor de derde vraag maken we een nieuwe grafiek. We slepen opnieuw een staafdiagram naar het lege canvas:
We selecteren als dimensie het veld ‘Productnaam’ en als meting kiezen we ‘Orderprijs’. Aangezien we ook een tweede meting willen gebruiken, namelijk ‘Winstpercentage’, moeten we die handmatig toevoegen. Dat kan aan de rechterkant van het scherm via ‘Gegevens toevoegen’. W e selecteren hier ‘Meting’. We kunnen het gewenste veld niet selecteren omdat deze niet in de set bestaat. Net als bij het vorige voorbeeld kiezen we voor de eenvoudige manier om de gewenste aangepaste meting te krijgen. We klikken hiervoor op het FX-symbool.
In het volgende scherm voegen we de volgende formule toe.
Het resultaat ziet er dan als volgt uit. Na selectie zien we beide waarden, maar we kunnen de waarden er ook onder zetten:
We willen de grafiek nu nog netjes sorteren, zoals ook bij de andere voorbeelden:
Tot slot willen we het winstpercentage gebruiken op de kleur. Dit is niet eenvoudig. Waar QlikView een ‘Wizard Kleurenmenger’ had missen we deze optie (nog) binnen QlikSense. Als we dezelfde formule uit QlikView kopiëren blijkt het wel mogelijk, maar er zijn maar weinig mensen die dit zo uit hun hoofd kunnen uitschrijven. Aangezien QlikSense nog vrij nieuw is, zal deze optie er in de toekomst vast nog wel inkomen. ColorMix1 ((1+Sign(2*(sum(Winst)/sum(Orderprijs)-RangeMin (top(total sum(Winst)/ sum(Orderprijs),1,NoOfRows(total))))/(RangeMax (top(total sum(Winst)/ sum(Orderprijs),1,NoOfRows(total)))-RangeMin (top(total sum(Winst)/ sum(Orderprijs),1,NoOfRows(total))))-1)*Sqrt(Fabs((2*(sum(Winst)/sum(Orderprijs)RangeMin (top(total sum(Winst)/sum(Orderprijs),1,NoOfRows(total))))/(RangeMax (top(total sum(Winst)/sum(Orderprijs),1,NoOfRows(total)))-RangeMin (top(total sum(Winst)/ sum(Orderprijs),1,NoOfRows(total))))-1))))/2, ARGB(255, 255, 0, 0), ARGB(255, 0, 255, 0))
HET ANTWOORD VAN TABLEAU
Na het selecteren van het bestand komen we in het volgende scherm uit, waar we simpelweg het tabblad dat we willen gebruiken selecteren en naar het witte canvas slepen.
Zodra we dit hebben gedaan zien we onderin de inhoud van dat tabblad zodat we zeker weten of we de juiste gegevens hebben geselecteerd.
Om verder te gaan, klikken we onderin het scherm op ‘Sheet1’.
We zien vervolgens meteen een onderverdeling naar ‘Dimensions’ en ‘Measures’ waarmee snel duidelijk is wat er allemaal mogelijk is.
Om de eerste vraag van de salesmanager te beantwoorden, hoeven we eigenlijk alleen maar het veld ‘Klantnaam’ naar ‘Rows’ te slepen en het veld ‘Orderprijs’ naar de ‘Columns’ midden bovenin het scherm. Tableau stelt standaard een SUM-aggregatie voor, maar daar kan makkelijk van worden afgeweken. Als we dit hebben gedaan, maakt Tableau er automatisch een staafdiagram van en zijn we eigenlijk al klaar. Dit scheelt dus een handeling. Om het te sorteren hoeven we alleen nog maar op het sorteer-icoontje te klikken.
Sorteren via het icoontje doet Tableau op basis van een aanname op basis van best practices. Als je hiervan wilt afwijken, kan dit ook erg eenvoudig. Om de tweede vraag te beantwoorden, maken we een nieuw tabblad en brengen we het veld ‘Orderdatum’ naar de ‘Columns’ en het veld ‘Orderprijs’ naar de ‘Rows’. We zien nu twee dingen gebeuren:
Tableau herkent net als Microsoft Power BI automatisch dat alle losse orderdatums opgeteld kunnen worden per jaar. Wat Tableau echter beter kan, is met het plus-teken voor de ‘YEAR(Orderdatum)’ downdrillen naar alle mogelijke onderliggende niveaus. Tot slot moeten we de lijngrafiek opsplitsen naar productcategorie. Dit doen we simpel door het veld ‘Productcategorie’ te slepen naar ‘Color’ in de ‘Marks’-sectie.
Rest ons nog de derde vraag. Hiervoor maken we een nieuwe tabblad in Tableau en brengen we het veld ‘Productnaam’ naar de ‘Rows’ en het veld ‘Orderprijs’ naar de ‘Columns’. We zien, net als bij de eerste vraag, dat Tableau er meteen een staafdiagram van maakt en door op het sorteer icoontje te klikken is de grafiek meteen zoals die moet zijn.
Tot slot moeten we het veld ‘Winstpercentage’ nog maken om dit te kunnen gebruiken in de grafiek. Dit is binnen Tableau ook redelijk eenvoudig.
Door op het kleine pijltje te klikken en de optie ‘Create Calculated Field’ te selecteren verschijnt er een pop-up waar we de volgende formule kunnen invoeren.
Nu we hiermee een nieuw veld hebben gemaakt, kunnen we dit direct gebruiken in de vorige grafiek. We doen dan dezelfde handeling, door dit veld te slepen naar ‘Color’ in de ‘Marks’-sectie. De grafiek is nu zoals we hem willen hebben en als we met de muis over een balk gaan, verschijnt er netjes een pop-up met de betreffende waarden voor die balk.
CONCLUSIE
Met de gekozen visualisatievraag komt Tableau als grote winnaar uit de bus. Qua opmaak, ease of use en minimaal aantal stappen komen de anderen niet eens in de buurt. Microsoft Power BI komt wat mij betreft op de tweede plaats, aangezien die ook vrij eenvoudig te hanteren is. Wat ik jammer vind, is dat je vooralsnog vrij beperkt bent qua opmaakmogelijkheden. Omdat de huidige versie nog maar kort op de markt is, denk ik dat dit in de toekomst wel goed gaat komen. QlikSense komt logischerwijs hoger uit dan oudere broer QlikView. De technologie is moderner maar net als bij Power BI is ook deze tool nog niet zo lang op de markt en dat is te zien qua mogelijkheden. Wat erg jammer is, is dat tijdsdimensies niet automatisch downdrillable zijn en dat daarvoor een formule moet worden gemaakt. QlikView is de hekkensluiter omdat het simpelweg de oudste van de vier is en daardoor wat ouderwets overkomt. Het is een stabiele applicatie maar de hedendaagse business user wil gewoon een meer gebruiksvriendelijke tool. Tableau wint in dit geval, maar ik zie het wel als belangrijke meerwaarde dat ik een scala aan andere tools, met specifieke sterke en zwakke punten, tot mijn beschikking heb. Zo kan ik in meer gevallen de beste oplossing aanbieden als de situatie van de klant daar om vraagt.
MEER INFORMATIE? NEEM CONTACT OP MET KADENZA MAIL
[email protected] OF BEL +31 (0)35 - 5394490
WERKEN BIJ KADENZA? KIJK OP PLAYITSMART.NL