Terug naar lijst

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.