Bij Growteq zijn wij dagelijks bezig met het visualiseren van data om inzicht te creëren en stuur- en managementinformatie te genereren. In de meeste gevallen maken wij daarbij gebruik van BI tools zoals Power BI of Qlik. Steeds vaker gebruiken wij Python als een programmeertaal waarmee wij data in onze projecten onderzoeken. In Python zijn er ook verschillende libraries beschikbaar waarmee mooie visualisaties gemaakt kunnen worden. Een goed voorbeeld daarvan is bijvoorbeeld seaborn. Als je echter interactieve visualisaties wilt maken, kun je gebruik maken van een combinatie van plotly en cufflinks.
In deze blog laat ik zien hoe dat werkt:
Installatie
Om te beginnen moeten plotly en cufflinks geïnstalleerd worden.
Dit kan via pip met:
- Pip install plotly
- Pip install cufflinks
Importeren van de libraries
In deze blog gebruiken we Pandas en Numpy als libraries om data te genereren die wij middels plotly gaan visualiseren.
Importeer de libraries met de volgende statements:
import pandas as pd
import numpy as np
from plotly.offline import download_plotlyjs, init_notebook_mode, plot, iplot
import cufflinks as cf
Genereren van test data
We maken twee dataframes aan die we kunnen gaan visualiseren:
df = pd.DataFrame(np.random.randn(100,4),columns=’A B C D’.split())
Met behulp van numpy worden willekeurige getallen gegenereerd en verdeeld over 4 kolommen.
De eerste vijf regels van het dataframe zien er als volgt uit:
Hieronder wordt een tweede dataframe gegenereerd met 3 kolommen.
df3 = pd.DataFrame({‘x’:[1,2,3,4,5],’y’:[10,20,30,20,10],’z’:[5,4,3,2,1]})
Dit dataframe ziet er als volgt uit:
Visualiseren van de data
Plotly heeft veel verschillende visualisatie opties.
Via deze link vind je een handige cheatsheet van plotly met veel gebruikte visuals en opties: Plotly Cheatsheet
We laten hier de volgende opties zien op basis van de eerder aangemaakt dataframes.
- scatter
- box
- surface
- bubble
Scatter
Met behulp van de volgende code maken we een scatter plot aan voor het eerste dataframe.
df.iplot(kind=’scatter’,x=’A’,y=’B’,mode=’markers’,size=10)
De scatter plot ziet er als volgt uit.
Plotly kent verschillende opmaakmogelijkheden van de scatter plot. Zo kun je de kleuren en de omvang van de bolletjes precies instellen. Daarnaast kun je bijvoorbeeld ook kiezen voor alternatieve modes zoals ‘lines’ en ‘lines+markers’ waarmee er ook een lijn wordt gebruikt in plaats van alleen de bolletjes.
Als je over de bolletjes heen gaat krijg je de waardes van de bolletjes te zien. Met de knoppen rechts bovenin de visual kun je inzoomen, selecteren, highlighten en snapshots maken.
Box
Met de volgende code wordt een boxplot van de data aangemaakt.
df.iplot(kind=’box’)
De box plot ziet er als volgt uit:
Surface
De surface plot is een mooie visual die een 3d plot maakt van de data.
df3.iplot(kind=’surface’,colorscale=’rdylbu’)
De surface plot ziet er als volgt uit.
Met behulp van de colorscale kun je zelf kiezen welke kleuren worden gebruikt.
De visual kun je zelf schalen, draaien en inzoomen om vanuit elk perspectief naar de data te kunnen kijken.
Bubble
De laatste visual die wij hier laten zien is de bubble plot.
df.iplot(kind=’bubble’,x=’A’,y=’B’,size=’C’)
De bubble plot ziet er als volgt uit:
In dit voorbeeld is gebruikt gemaakt van de parameter size om de omvang van de bubbles te bepalen.
Zoals je ziet kun je ook een kolom in de dataset gebruiken om deze size te bepalen.
Afsluiting
In deze blog heb ik laten zien hoe je met behulp van Python in combinatie met plotly en cufflinks interactieve visualisaties kunt maken.
De code is niet heel ingewikkeld en zo kun je heel snel mooie visualisaties maken die bijvoorbeeld geïntegreerd kunnen worden in websites.
Meer weten over onze oplossingen?
Onze consultants hebben veel ervaring binnen een grote verscheidenheid aan branches.
Eens verder brainstormen over de mogelijkheden voor jouw organisatie?
Maak kennis met onze specialist Arnoud van der Heiden.