In diesem Tutorial lernst du, wie du Bokeh (und seine Abhängigkeiten) installierst und welche grundlegenden Bausteine du für Visualisierungen mit Bokeh brauchst. Außerdem erfährst du, wie du einfache Plots erstellst und anpasst. Damit legst du das Fundament für fortgeschrittene Funktionen in den späteren Abschnitten.
Was ist Bokeh?
Bokeh ist ein interaktives Datenvisualisierungspaket, mit dem du dynamische Visualisierungen in Python erstellst. Bokeh ist Open Source und eignet sich, um Plots zu bauen, die eine überzeugende Geschichte erzählen.
Was unterscheidet Bokeh von anderen Tools?
Für Visualisierungen gibt es viele Python-Bibliotheken, um Dashboards und Diagramme zu erstellen, darunter:
- Bokeh
- Matplotlib
- Streamlit
- dash
- Seaborn
- Plotly
- Geoplotlib
- Gleam
- ggplot
- Missingo
Bokeh eignet sich besonders für:
- Interaktive Visualisierungen für moderne Browser
- Eigenständige Dokumente oder servergestützte Anwendungen
- Ausdrucksstarke und dynamische Grafiken
- Dashboards für große, dynamische oder Streaming-Daten
Dieses Bokeh-Tutorial ist für dich, wenn ...
Du Data Scientist, Data Analyst oder Machine-Learning-Engineer bist. Du solltest grundlegende Python-Kenntnisse mitbringen und wissen, wie man Pakete installiert und importiert. Du lernst, interaktive Visualisierungen zu erstellen und sie mit der Bokeh-Bibliothek im Web bereitzustellen. Bokeh hilft dir, interaktive Plots, Dashboards und Datenanwendungen zu bauen.
So installierst du Bokeh
Installation mit Anaconda
Wenn Anaconda dein Python-Paketmanager ist, kannst du Bokeh über Anaconda Prompt, die Windows-Eingabeaufforderung oder ein Bash-Terminal wie folgt installieren:
conda install bokeh
conda install jinja2
conda install six
conda install requests
conda install tornado
conda install pyYaml
Installation mit pip
Alternativ kannst du die Installation mit dem Python-Paketmanager pip durchführen:
pip install bokeh
pip install jinja2
pip install six
pip install requests
pip install tornado
pip install pyYaml
Installation im Jupyter Notebook
!pip install bokeh
!pip install Jinja2
!pip install Six
!pip install Requests
!pip install Tornado
!pip install PyYaml
Installation prüfen
from bokeh.io import output_notebook, show
output_notebook()

Problemlösung
Wenn bei der Installation von Bokeh Probleme auftreten, findest du Hilfe im Discourse-Forum. Außerdem lohnt sich ein Blick auf Github zu bekannten Bokeh-Issues.
Willkommen bei Glyphs
Was sind eigentlich Glyphs?
Glyphs sind die zentralen Bausteine in Bokeh, mit denen Plots entstehen. Jeder Plot, den du in Bokeh erstellst, nutzt Glyphs. Möchtest du zum Beispiel ein Streudiagramm zeichnen, kannst du Kreise als Marker verwenden, um Informationen darzustellen. Eine Linie repräsentiert Informationen in einem Liniendiagramm.
Diese geometrischen Formen (Linien oder Kreise) nennen wir in Bokeh Glyphs. Sie transportieren visuelle Informationen über Daten. Dieses Tutorial zeigt dir, wie du mit Glyphs verschiedene Plot-Typen erstellst. Konkret plotten wir mit Glyphs:
- Liniendiagramme: Sie zeigen die Bewegung von Datenpunkten entlang der x- und y-Achse als Linie. Ideal für Zeitreihen.
- Balkendiagramme: Sie stellen die Anzahl je Kategorie als Spalte dar. Geeignet zur Kategorisierung von Daten.
- Patch-Plots: Sie färben Bereiche ein, um Gruppen innerhalb desselben Datensatzes abzugrenzen.
- Streudiagramme: Sie zeigen die Beziehung zwischen zwei Variablen und die Stärke ihrer Korrelation.
So nutzt du Glyphs zum Plotten
Allgemeines Vorgehen zum Erstellen eines Plots in Bokeh:
- Erstelle mit der Funktion figure() ein Plot-Objekt.
- Definiere Titel sowie Beschriftungen für x- und y-Achse.
- Füge dann das Glyph line() hinzu, um ein Liniendiagramm zu zeichnen, und
- nutze cross(), um Schnittpunkte zwischen x- und y-Punkten zu markieren.
Liniendiagramme erstellen
Der folgende Code zeigt, wie du in Bokeh ein einfaches Liniendiagramm erstellst.
#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)
Dieses Beispiel erstellt mit dem Glyph line() eine einzelne Linie auf Basis eindimensionaler Folgen von x- und y-Datenpunkten. In figure() kannst du Breite und Höhe, den Titel sowie die Achsenbeschriftungen festlegen. Im line()-Glyph bestimmst du die Liniendicke über line_width und die Farbe über color.

Balkendiagramme erstellen
#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 erstellen
Ein Patch-Plot färbt Bereiche ein, um anzuzeigen, dass eine Gruppe oder Region ähnliche Merkmale aufweist. So erstellst du einen einfachen Patch-Plot:
# 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)

Es gibt drei unterscheidbare Bereiche: Erstens [1,1,2], abgebildet auf [2,5,6] auf der y-Achse. Zweitens der Bereich [2,2,3] auf der x-Achse, abgebildet auf [3,6,7] auf der y-Achse, und drittens [2,3,5,4] auf der x-Achse, abgebildet auf [2,4,7,8] auf der y-Achse. Das patches-Glyph verwendet unterschiedliche Farben, um die Flächen je Bereich zu zeichnen. Das Argument line_color legt die Randfarbe jeder Fläche fest.
Streudiagramme erstellen
Data Scientists nutzen Streudiagramme häufig, um die Beziehung zwischen zwei Variablen zu untersuchen. So erstellst du in Bokeh ein einfaches Streudiagramm:
# 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)

Der Code verwendet Kreise als Marker für die Schnittpunkte der x- und y-Listen im Streudiagramm. Statt Kreisen kannst du auch andere Marker nutzen, zum Beispiel:
- cross()
- x()
- diamond()
- diamond_cross()
- circle_x()
- circle_cross()
- triangle()
- inverted_triangle()
- square_x()
- square_cross()
- asterisk()
Das Argument size = 30 legt die Größe der Kreise fest. Die Abbildung fasst alle in Bokeh verfügbaren Marker zusammen.

Mit dem Argument alpha steuerst du die Transparenz der Kreise. Der Wert liegt zwischen 0 und 1, wobei 0 vollständig transparent und 1 deckend ist.
Fazit
Dieses Tutorial führt Bokeh als interaktives Visualisierungstool auf hohem Abstraktionsniveau ein. Es zeigt dir, was du beim Einsatz von Bokeh erwarten kannst. Du hast gelernt, wie du in Bokeh mit dem Konzept der Glyphs Linien-, Balken-, Patch- und Streudiagramme erstellst. Ausführlichere Informationen zu den verschiedenen Diagrammtypen findest du in der Bokeh-Dokumentation.
