Suchen

Definition Was ist Bokeh?

| Autor / Redakteur: Dipl.-Ing. (FH) Stefan Luber / Nico Litzel

Bokeh ist eine frei verfügbare Bibliothek für die Programmiersprache Python. Sie erlaubt es, interaktive Visualisierungen großer Datenmengen zu erstellen. Die Bokeh Visualization Library nutzt Webbrowser zur Darstellung der generierten Visualisierungen und wird als Projekt von NumFOCUS gesponsert.

Firma zum Thema

(Bild: © aga7ta - stock.adobe.com)

Der Name Bokeh leitet sich von einem Begriff aus der Welt der Fotografie ab. Dort steht Bokeh für die unscharfen Bildbereiche außerhalb des fokussierten Objekts. In der Informationstechnik ist Bokeh eine Python Library, die sich zur interaktiven Visualisierung großer Datenmengen verwenden lässt. Gesponsert wird das Projekt Bokeh von NumFOCUS, einer US-amerikanischen Non-Profit-Gesellschaft, die zahlreiche weitere Software-Projekte im Umfeld wissenschaftlichen Computings fördert.

Präsentieren lassen sich die interaktiven Visualisierungen im Webbrowser. Bokeh nutzt modernste Web-Technologien und erlaubt es, schnell und einfach interaktive Plots, Dashboards und andere Visualisierungsformen zu erstellen. Im Gegensatz zu andren populären Visualisierungsbibliotheken wie Seaborn oder Matplotlib nutzt Bokeh HTML und JavaScript zum Rendern der Grafiken.

Das aktuelle Release ist Bokeh 2.2.1 (Stand August 2020). Die Library steht unter Open-Source-Lizenz BSD-3 und ist über GitHub frei verfügbar. Installieren lässt sich die Library beispielsweise über die Anaconda Python Distribution und das Conda Package Management System.

Konzept und User Interfaces von Bokeh

Bokeh unterscheidet sich von anderen Visualisierungsbibliotheken darin, dass sich die Library für dynamische Visualisierungen in modernen Webbrowsern eignet. Grafiken werden mit HTML und JavaScript gerendert. Sie lassen sich dadurch elegant für grafische Webapplikationen mit hoher Interaktivität verwenden. Im Kern konzentriert sich die Library auf statistisches Plotting großer, multidimensionaler Datensätze. Es kommt das Client-Server-Prinzip des Webs mit Client-seitigem Rendering innerhalb des Webbrowsers zum Einsatz. Bokeh stellt leistungsstarke und flexible Funktionen bereit, die einfach anzuwenden sind und hohe Performance bieten. Dem Anwender stehen verschiedene Visualisierungs-Interfaces zur Verfügung. Zu diesen Interfaces zählen:

  • das High-Level Interface Charts
  • das Intermediate-Level Interface Plotting
  • das Low-Level Interface Models

Das High-Level Interface Charts wird verwendet, um Informationen und Daten in Standard-Visualisierungsformen zu präsentieren. Zu diesen Standardformen zählen Balkendiagramme, Heat Maps, Tortendiagramme, Kastendiagramme und vieles mehr. Das Erzeugen der Charts ist mit einfacher Übergabe der Datensätze möglich.

Mit dem Intermediate-Level Interface Plotting lassen sich visuelle Glyphen erzeugen. Die Visualisierung entsteht, indem verschiedene grafische Elemente wie Punkte, Linien, Kreise und andere mit Funktionen wie Zoom oder Mouse-Over kombiniert werden. Bokeh stellt eine Vielzahl an Default-Elementen und -Funktionen für die Plots zur Verfügung. Models bieten dem Entwickler maximale Flexibilität, da sie alle Visualisierungsmöglichkeiten von Bokeh beinhalten.

Zur Interaktion zwischen Anwender und Bokeh existiert BokehJS, eine Client-seitige Standalone Runtime Library für den Browser. Es handelt sich um eine in TypeScript geschriebene JavaScript Plotting Library, die durch Interaktion des Web-Clients mit der Backend-Applikation für dynamische, interaktive Visualisierungen sorgt.

Arbeitsschritte für eine Visualisierung mit Bokeh

Je nach verwendetem Interface hat der Anwender verschiedene Arbeitsschritte zur Erstellung einer Visualisierung zu durchlaufen. Typische Arbeitsschritte, ausgehend von den Daten bis zur fertigen Visualisierung mit der Bokeh Library, sind:

  • Aufbereitung der Daten
  • Auswahl des Renderings und Setup der Figures
  • Übergabe der Daten
  • Organisation des Layouts
  • Preview der Visualisierung
  • Speicherung der Visualisierung

Die typischen Vorteile der Bokeh Library

Die Bokeh Library bietet eine Vielzahl an Vorteilen. Zu diesen Vorteilen zählen unter anderem:

  • einfaches und schnelles erstellen komplexer Visualisierungen und Plots mithilfe einfacher Befehle
  • geeignet für große Datenmengen
  • geeignet für dynamische, interaktive Visualisierungen
  • Präsentation im Webbrowser – Nutzung von HTML und JavaScript
  • eigene Client-seitige Standalone Runtime Library BokehJS für den Browser
  • Nutzung verschiedener User-Interfaces (High-Level, Low-Level und Intermediate-Level)
  • Möglichkeit zur Konvertierung der mit anderen Libraries wie Seaborn oder Matplotlib erstellten Visualisierungen
  • flexible Darstellungsmöglichkeiten
  • frei auf GitHub verfügbare, Open-Source-basierte Library unter BSD-Lizenz
  • Geeignet für Plots, Dashboards und Web-Applikationen
  • Nutzung der Standard-Python-Umgebung mit allen bereits bekannten Tools wie PyData oder NumPy

(ID:46908937)

Über den Autor