In deze tutorial leer je hoe je Bokeh (en de afhankelijkheden) installeert en de basisbouwstenen voor visualisatie met Bokeh. Je leert ook hoe je eenvoudige grafieken maakt en aanpast. Dit vormt de basis voor het leren van geavanceerdere functies in de latere secties.
Wat is Bokeh?
Bokeh is een interactief datavisualisatiepakket voor het maken van dynamische visualisaties met Python. Bokeh is open-source en je kunt het gebruiken om grafieken te maken die een interessant verhaal vertellen.
Wat onderscheidt Bokeh van andere tools?
In de wereld van visualisaties zijn er veel Python-bibliotheken voor het maken van dashboards en visualisaties, waaronder:
- Bokeh
- Matplotlib
- Streamlit
- dash
- Seaborn
- Plotly
- Geoplotlib
- Gleam
- ggplot
- Missingo
Bokeh is goed voor het volgende:
- Interactievisualisaties bouwen voor moderne browsers
- Zelfstandige documenten of server-gestuurde applicaties maken
- Expressieve en dynamische grafieken creëren
- Dashboards maken voor grote, dynamische of streaming data
Deze Bokeh-tutorial is voor jou...
Als je data scientist, data-analist of machine learning engineer bent. Deze tutorial vereist dat je basiskennis van Python hebt en weet hoe je pakketten installeert en importeert. Je leert interactieve visualisaties maken en ze op het web uitrollen met de Bokeh-bibliotheek. Bokeh kan je helpen interactieve grafieken, dashboards en data-applicaties te maken.
Bokeh installeren
Installeren met Anaconda
Als Anaconda je Python-pakketmanager is, kun je Bokeh installeren via Anaconda Prompt, Windows Command Prompt of Bash Terminal, als volgt:
conda install bokeh
conda install jinja2
conda install six
conda install requests
conda install tornado
conda install pyYaml
Installeren met pip
Je kunt het ook installeren met de pip-pakketmanager voor Python, als volgt:
pip install bokeh
pip install jinja2
pip install six
pip install requests
pip install tornado
pip install pyYaml
Installeren binnen Jupyter Notebook
!pip install bokeh
!pip install Jinja2
!pip install Six
!pip install Requests
!pip install Tornado
!pip install PyYaml
Je installatie verifiëren
from bokeh.io import output_notebook, show
output_notebook()

Probleemoplossing
Als je problemen hebt met het installeren van Bokeh, kun je terecht op Discourse voor hulp. Je kunt ook op Github kijken voor het oplossen van Bokeh-issues.
Welkom bij glyphs
Wat zijn glyphs eigenlijk?
Glyphs zijn de belangrijkste bouwstenen van Bokeh waarmee grafieken worden gemaakt. Elke grafiek die je in Bokeh bouwt, heeft een glyph-mechanisme. Als je bijvoorbeeld een scatterplot wilt maken, kun je een cirkel als markering gebruiken om informatie weer te geven. Een lijn vertegenwoordigt informatie in een lijngrafiek.
Deze geometrische vormen (lijnen of cirkels) noemen we in Bokeh glyphs. Ze geven visuele informatie over data weer. Deze tutorial helpt je glyphs te begrijpen door te laten zien hoe je glyphs gebruikt om verschillende soorten grafieken te maken. Samengevat gaan we de volgende grafieken plotten met glyphs:
- Lijngrafieken: Lijngrafieken tonen de beweging van datapunten langs de x- en y-as als een lijn. Lijngrafieken zijn geschikt voor het plotten van tijdreeksdata.
- Staafgrafieken: Staafgrafieken tonen de telling van elke categorie als een kolom of balk. Staafgrafieken zijn geschikt voor het categoriseren van data.
- Patch-plots: Patch-plots tonen een gebied van punten in een bepaalde kleur. Ze zijn geschikt om groepen binnen dezelfde dataset te onderscheiden.
- Scatterplots: Scatterplots geven de relatie tussen twee variabelen en de sterkte van de correlatie daartussen weer.
Glyphs gebruiken voor plotten
De algemene stappen voor het maken van een grafiek in Bokeh zijn:
- Maak een grafiek met de functie figure() om Bokeh de opdracht te geven een diagram te maken.
- Definieer titel en labels voor de x- en y-as.
- Voeg vervolgens de line() glyph toe aan de figure om een lijngrafiek te maken en
- de cross() glyph om kruisingen tussen de x- en y-punten te markeren.
Lijngrafieken maken
De code laat zien hoe je een eenvoudige lijngrafiek in Bokeh maakt.
#Import the required packages
from bokeh.io import output_notebook, output_file, show
from bokeh.plotting import figure
#Create two data arrays
x = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10]
y = [11, 12, 13, 14, 15, 16, 17, 18, 19, 20]
# Create plot
plot = figure(width=400, height=400, title="Simple line plot", x_axis_label="x-axis", y_axis_label = 'y-axis')
plot.line(x,y, line_width=2, color='green')
#Show plot
output_file(“line_plot1.html”)
show(plot)
Dit voorbeeld laat zien hoe je een enkele line-glyph maakt met een eendimensionale reeks x- en y-datapoints met de line() glyph. Je kunt de breedte en hoogte van de grafiek, de titel en de aslabels opgeven in de functie figure(). In de line() glyph kun je de line_width (dikte) opgeven met het argument line_width en de kleur met het argument color.

Staafgrafieken maken
#Import the
from bokeh.plotting import figure, show
animals = ['lion', 'leopard', 'elephant', 'rhino', 'buffalo']
weight_tonnes = [190, 90, 3000, 2300, 590]
p = figure(x_range=animals, height=350, title="Big Five weight", x_axis_label = "Animal", y_axis_label = "Weight",
toolbar_location=None, tools="")
p.vbar(x=animals, top=weight_tonnes, width=0.9)
p.xgrid.grid_line_color = None
p.y_range.start = 0
show(p)

Patch-plots maken
Een patch-plot arceert gebieden met kleur om te laten zien dat een groep of regio vergelijkbare kenmerken heeft. Je kunt een eenvoudige patch-plot maken, als volgt:
# Import required packages
from bokeh.io import output_file, show
from bokeh.plotting import figure
# Create the regions to chart
x_region = [[1,1,2], [2,3,3], [2,3,5,4]]
y_region = [[2,5,6], [3,6,7], [2,4,7,8]]
# Create plot
plot = figure()
plot.patches(x_region, y_region, fill_color = ['blue', 'yellow', 'green'], line_color = 'black')
show(plot)

Er zijn drie afzonderlijke regio's: de eerste is de [1,1,2] die is gekoppeld aan [2,5,6] op de y-as. De tweede is de regio [2,2,3] op de x-as gekoppeld aan [3,6,7] op de y-as, en de derde regio [2,3,5,4] op de x-as gekoppeld aan [2,4,7,8] op de y-as. De patches-glyph gebruikt verschillende kleuren om de vlakken voor elke regio op te bouwen. Het argument _linecolor specificeert de randkleur voor elke patch.
Scatterplots maken
Data scientists gebruiken vaak scatterplots om de relatie tussen twee variabelen te bepalen. Je kunt een eenvoudige scatterplot in Bokeh maken als volgt:
# Import required packages
from bokeh.io import output_file, show
from bokeh.plotting import figure
# Create x and y data points
x = [1,2,3,4,5]
y = [5,7,2,2,4]
# Create plot
plot = figure(title = "Scatter plot", x_axis_label = "Label name of x axis", y_axis_label ="Label name of y axis")
plot.circle(x,y, size = 30, alpha = 0.5)
# Add labels
# Output the plot
show(plot)

De code gebruikt cirkelmarkeringen om de snijpunten van de x- en y-lijsten in de scatterplot te maken. In plaats van cirkels kun je andere markers gebruiken, zoals:
- cross()
- x()
- diamond()
- diamond_cross()
- circle_x()
- circle_cross()
- triangle()
- inverted_triangle()
- square_x()
- square_cross()
- asterisk()
Het argument size = 30 specificeert de grootte van elke cirkel. De afbeelding vat alle beschikbare markers in Bokeh samen.

Het argument alpha specificeert de transparantie van de cirkels. Het neemt een waarde tussen 0 en 1, waarbij 0 volledig transparant is en 1 ondoorzichtig.
Conclusie
Deze tutorial introduceert Bokeh als een interactief en high-level visualisatiehulpmiddel. De tutorial legt de basis voor wat je kunt verwachten bij het werken met Bokeh. Je hebt gezien hoe je lijngrafieken, staafgrafieken, patch-plots en scatterplots maakt in Bokeh met het concept van glyphs. Bekijk de volgende Bokeh-documentatie voor meer details over de verschillende grafieken die je in Bokeh kunt maken.
